From e4a8e2ad38c831589f0eb51cce1d4870cb7a9021 Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Mon, 23 Mar 2026 09:28:58 +1000 Subject: [PATCH 01/23] feat: gloas support --- .../clickhouse/106_gloas_support.down.sql | 19 + .../clickhouse/106_gloas_support.up.sql | 63 + go.mod | 3 + go.sum | 4 +- pkg/cannon/cannon.go | 19 + .../deriver/beacon/eth/v2/beacon_block.go | 2 + .../eth/v2/beacon_block_sync_aggregate.go | 8 + .../beacon/eth/v2/block_access_list.go | 277 + .../beacon/eth/v2/execution_transaction.go | 6 + pkg/cannon/deriver/config.go | 1 + .../beacon/beacon_api_eth_v2_beacon_block.go | 29 +- .../route/canonical/canonical_beacon_block.go | 26 + .../canonical_beacon_block_access_list.gen.go | 281 + .../canonical_beacon_block_access_list.go | 119 + pkg/proto/eth/block.go | 47 + pkg/proto/eth/v1/block_access_list.pb.go | 737 ++ pkg/proto/eth/v1/block_access_list.proto | 65 + pkg/proto/eth/v1/execution_engine.pb.go | 1256 ++- pkg/proto/eth/v1/execution_engine.proto | 30 + pkg/proto/eth/v2/beacon_block.pb.go | 2482 ++--- pkg/proto/eth/v2/beacon_block.proto | 57 +- pkg/proto/eth/v2/events.pb.go | 186 +- pkg/proto/eth/v2/events.proto | 8 +- pkg/proto/xatu/coordinator.pb.go | 1137 +-- pkg/proto/xatu/coordinator.proto | 7 + pkg/proto/xatu/event_ingester.pb.go | 8263 +++++++++-------- pkg/proto/xatu/event_ingester.proto | 15 + pkg/sentry/beacon_blob.go | 4 + .../event/beacon/eth/v2/beacon_block.go | 2 + .../beacon/eth/v3/proposed_validator_block.go | 4 + .../event/beacon/eth/v2/beacon_block.go | 10 + .../event/beacon/eth/v2/beacon_block_v2.go | 9 + 32 files changed, 8991 insertions(+), 6185 deletions(-) create mode 100644 deploy/migrations/clickhouse/106_gloas_support.down.sql create mode 100644 deploy/migrations/clickhouse/106_gloas_support.up.sql create mode 100644 pkg/cannon/deriver/beacon/eth/v2/block_access_list.go create mode 100644 pkg/consumoor/route/canonical/canonical_beacon_block_access_list.gen.go create mode 100644 pkg/consumoor/route/canonical/canonical_beacon_block_access_list.go create mode 100644 pkg/proto/eth/v1/block_access_list.pb.go create mode 100644 pkg/proto/eth/v1/block_access_list.proto diff --git a/deploy/migrations/clickhouse/106_gloas_support.down.sql b/deploy/migrations/clickhouse/106_gloas_support.down.sql new file mode 100644 index 000000000..4e45db6fd --- /dev/null +++ b/deploy/migrations/clickhouse/106_gloas_support.down.sql @@ -0,0 +1,19 @@ +-- Drop canonical_beacon_block_access_list tables +DROP TABLE IF EXISTS default.canonical_beacon_block_access_list ON CLUSTER '{cluster}'; +DROP TABLE IF EXISTS default.canonical_beacon_block_access_list_local ON CLUSTER '{cluster}'; + +-- Remove columns from canonical_beacon_block +ALTER TABLE default.canonical_beacon_block ON CLUSTER '{cluster}' + DROP COLUMN IF EXISTS execution_payload_block_access_list_root, + DROP COLUMN IF EXISTS execution_payload_slot_number; + +ALTER TABLE default.canonical_beacon_block_local ON CLUSTER '{cluster}' + DROP COLUMN IF EXISTS execution_payload_block_access_list_root, + DROP COLUMN IF EXISTS execution_payload_slot_number; + +-- Remove columns from beacon_api_eth_v2_beacon_block +ALTER TABLE default.beacon_api_eth_v2_beacon_block ON CLUSTER '{cluster}' + DROP COLUMN IF EXISTS execution_payload_slot_number; + +ALTER TABLE default.beacon_api_eth_v2_beacon_block_local ON CLUSTER '{cluster}' + DROP COLUMN IF EXISTS execution_payload_slot_number; diff --git a/deploy/migrations/clickhouse/106_gloas_support.up.sql b/deploy/migrations/clickhouse/106_gloas_support.up.sql new file mode 100644 index 000000000..09b8d4ab3 --- /dev/null +++ b/deploy/migrations/clickhouse/106_gloas_support.up.sql @@ -0,0 +1,63 @@ +-- Add execution_payload_slot_number to beacon_api_eth_v2_beacon_block +ALTER TABLE default.beacon_api_eth_v2_beacon_block_local ON CLUSTER '{cluster}' + ADD COLUMN IF NOT EXISTS execution_payload_slot_number Nullable(UInt64) + CODEC(DoubleDelta, ZSTD(1)) AFTER execution_payload_excess_blob_gas; + +ALTER TABLE default.beacon_api_eth_v2_beacon_block ON CLUSTER '{cluster}' + ADD COLUMN IF NOT EXISTS execution_payload_slot_number Nullable(UInt64) + CODEC(DoubleDelta, ZSTD(1)) AFTER execution_payload_excess_blob_gas; + +-- Add execution_payload_slot_number and execution_payload_block_access_list_root to canonical_beacon_block +ALTER TABLE default.canonical_beacon_block_local ON CLUSTER '{cluster}' + ADD COLUMN IF NOT EXISTS execution_payload_slot_number Nullable(UInt64) + CODEC(DoubleDelta, ZSTD(1)) AFTER execution_payload_excess_blob_gas, + ADD COLUMN IF NOT EXISTS execution_payload_block_access_list_root Nullable(FixedString(66)) + CODEC(ZSTD(1)) AFTER execution_payload_slot_number; + +ALTER TABLE default.canonical_beacon_block ON CLUSTER '{cluster}' + ADD COLUMN IF NOT EXISTS execution_payload_slot_number Nullable(UInt64) + CODEC(DoubleDelta, ZSTD(1)) AFTER execution_payload_excess_blob_gas, + ADD COLUMN IF NOT EXISTS execution_payload_block_access_list_root Nullable(FixedString(66)) + CODEC(ZSTD(1)) AFTER execution_payload_slot_number; + +-- Create canonical_beacon_block_access_list table +CREATE TABLE IF NOT EXISTS default.canonical_beacon_block_access_list_local ON CLUSTER '{cluster}' ( + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + slot UInt32 CODEC(DoubleDelta, ZSTD(1)), + slot_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + epoch UInt32 CODEC(DoubleDelta, ZSTD(1)), + epoch_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + block_root FixedString(66) CODEC(ZSTD(1)), + block_number UInt64 CODEC(DoubleDelta, ZSTD(1)), + block_hash FixedString(66) CODEC(ZSTD(1)), + address FixedString(42) CODEC(ZSTD(1)), + change_type LowCardinality(String) CODEC(ZSTD(1)), + block_access_index UInt16 CODEC(DoubleDelta, ZSTD(1)), + storage_key Nullable(FixedString(66)) CODEC(ZSTD(1)), + new_value Nullable(String) CODEC(ZSTD(1)), + meta_client_name LowCardinality(String) CODEC(ZSTD(1)), + meta_client_id String CODEC(ZSTD(1)), + meta_client_version LowCardinality(String) CODEC(ZSTD(1)), + meta_client_implementation LowCardinality(String) CODEC(ZSTD(1)), + meta_client_os LowCardinality(String) CODEC(ZSTD(1)), + meta_client_ip Nullable(IPv6) CODEC(ZSTD(1)), + meta_client_geo_city LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) CODEC(ZSTD(1)), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) CODEC(ZSTD(1)), + meta_consensus_version LowCardinality(String) CODEC(ZSTD(1)), + meta_consensus_implementation LowCardinality(String) CODEC(ZSTD(1)), + meta_labels Map(String, String) CODEC(ZSTD(1)) +) ENGINE = ReplicatedReplacingMergeTree(updated_date_time) +PARTITION BY toStartOfMonth(slot_start_date_time) +ORDER BY (slot_start_date_time, meta_network_name, block_hash, address, change_type, storage_key, block_access_index); + +CREATE TABLE IF NOT EXISTS default.canonical_beacon_block_access_list ON CLUSTER '{cluster}' + AS default.canonical_beacon_block_access_list_local + ENGINE = Distributed('{cluster}', default, canonical_beacon_block_access_list_local, rand()); diff --git a/go.mod b/go.mod index 91b15c063..54eebbe4b 100644 --- a/go.mod +++ b/go.mod @@ -7,6 +7,9 @@ go 1.25.7 // Match tysm's tablewriter version requirement replace github.com/olekukonko/tablewriter => github.com/olekukonko/tablewriter v0.0.5 +// Use pk910's BALs branch for Gloas/EIP-7928 support +replace github.com/attestantio/go-eth2-client => github.com/pk910/go-eth2-client v0.0.0-20260120171638-6be3bd0765ca + require ( github.com/ClickHouse/ch-go v0.71.0 github.com/IBM/sarama v1.46.2 diff --git a/go.sum b/go.sum index 230b4ffce..0f9b356a5 100644 --- a/go.sum +++ b/go.sum @@ -51,8 +51,6 @@ github.com/alicebob/miniredis/v2 v2.33.0 h1:uvTF0EDeu9RLnUEG27Db5I68ESoIxTiXbNUi github.com/alicebob/miniredis/v2 v2.33.0/go.mod h1:MhP4a3EU7aENRi9aO+tHfTBZicLqQevyi/DJpoj6mi0= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah4HI848JfFxHt+iPb26b4zyfspmqY0/8= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= -github.com/attestantio/go-eth2-client v0.27.1 h1:g7bm+gG/p+gfzYdEuxuAepVWYb8EO+2KojV5/Lo2BxM= -github.com/attestantio/go-eth2-client v0.27.1/go.mod h1:fvULSL9WtNskkOB4i+Yyr6BKpNHXvmpGZj9969fCrfY= github.com/avast/retry-go/v4 v4.6.1 h1:VkOLRubHdisGrHnTu89g08aQEWEgRU7LVEop3GbIcMk= github.com/avast/retry-go/v4 v4.6.1/go.mod h1:V6oF8njAwxJ5gRo1Q7Cxab24xs5NCWZBeaHHBklR8mA= github.com/bazelbuild/rules_go v0.23.2 h1:Wxu7JjqnF78cKZbsBsARLSXx/jlGaSLCnUV3mTlyHvM= @@ -635,6 +633,8 @@ github.com/pion/webrtc/v4 v4.1.2 h1:mpuUo/EJ1zMNKGE79fAdYNFZBX790KE7kQQpLMjjR54= github.com/pion/webrtc/v4 v4.1.2/go.mod h1:xsCXiNAmMEjIdFxAYU0MbB3RwRieJsegSB2JZsGN+8U= github.com/pk910/dynamic-ssz v0.0.6 h1:Tu97LSc2TtCyqRfoSbhG9XuR/FbA7CkKeAnlkgUydFY= github.com/pk910/dynamic-ssz v0.0.6/go.mod h1:b6CrLaB2X7pYA+OSEEbkgXDEcRnjLOZIxZTsMuO/Y9c= +github.com/pk910/go-eth2-client v0.0.0-20260120171638-6be3bd0765ca h1:ywkUO6OeLArWP+v0vVa+QA38GH+XVo3eU3f7AUU0YCs= +github.com/pk910/go-eth2-client v0.0.0-20260120171638-6be3bd0765ca/go.mod h1:1MBvz1DVe6jZduHJDJuJ/1S4LzYmDmvx+r5alo4pyrM= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= diff --git a/pkg/cannon/cannon.go b/pkg/cannon/cannon.go index de5fac801..498799f90 100644 --- a/pkg/cannon/cannon.go +++ b/pkg/cannon/cannon.go @@ -680,6 +680,25 @@ func (c *Cannon) startBeaconBlockProcessor(ctx context.Context) error { c.beacon, clientMeta, ), + v2.NewBlockAccessListDeriver( + c.log, + &c.Config.Derivers.BlockAccessListConfig, + iterator.NewBackfillingCheckpoint( + c.log, + networkName, + networkID, + xatu.CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST, + c.coordinatorClient, + wallclock, + &backfillingCheckpointIteratorMetrics, + c.beacon, + finalizedCheckpoint, + 3, + &c.Config.Derivers.BlockAccessListConfig.Iterator, + ), + c.beacon, + clientMeta, + ), } c.eventDerivers = eventDerivers diff --git a/pkg/cannon/deriver/beacon/eth/v2/beacon_block.go b/pkg/cannon/deriver/beacon/eth/v2/beacon_block.go index 801c18032..915c0c98a 100644 --- a/pkg/cannon/deriver/beacon/eth/v2/beacon_block.go +++ b/pkg/cannon/deriver/beacon/eth/v2/beacon_block.go @@ -404,6 +404,8 @@ func getBlockMessage(block *spec.VersionedSignedBeaconBlock) (ssz.Marshaler, err return block.Electra.Message, nil case spec.DataVersionFulu: return block.Fulu.Message, nil + case spec.DataVersionGloas: + return block.Gloas.Message, nil default: return nil, fmt.Errorf("unsupported block version: %s", block.Version) } diff --git a/pkg/cannon/deriver/beacon/eth/v2/beacon_block_sync_aggregate.go b/pkg/cannon/deriver/beacon/eth/v2/beacon_block_sync_aggregate.go index fca3e8d95..c69e79b73 100644 --- a/pkg/cannon/deriver/beacon/eth/v2/beacon_block_sync_aggregate.go +++ b/pkg/cannon/deriver/beacon/eth/v2/beacon_block_sync_aggregate.go @@ -370,6 +370,14 @@ func (b *BeaconBlockSyncAggregateDeriver) getSyncAggregate( sa := block.Fulu.Message.Body.SyncAggregate bits = sa.SyncCommitteeBits[:] signature = sa.SyncCommitteeSignature[:] + case spec.DataVersionGloas: + if block.Gloas == nil || block.Gloas.Message == nil || block.Gloas.Message.Body == nil { + return nil, nil //nolint:nilnil // nil indicates no sync aggregate available + } + + sa := block.Gloas.Message.Body.SyncAggregate + bits = sa.SyncCommitteeBits[:] + signature = sa.SyncCommitteeSignature[:] default: return nil, fmt.Errorf("unsupported block version: %s", block.Version) } diff --git a/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go b/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go new file mode 100644 index 000000000..eaa6f4ef0 --- /dev/null +++ b/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go @@ -0,0 +1,277 @@ +package v2 + +import ( + "context" + "fmt" + "time" + + "github.com/attestantio/go-eth2-client/spec" + "github.com/attestantio/go-eth2-client/spec/phase0" + backoff "github.com/cenkalti/backoff/v5" + "github.com/ethpandaops/xatu/pkg/cannon/ethereum" + "github.com/ethpandaops/xatu/pkg/cannon/iterator" + "github.com/ethpandaops/xatu/pkg/observability" + xatuethv1 "github.com/ethpandaops/xatu/pkg/proto/eth/v1" + "github.com/ethpandaops/xatu/pkg/proto/xatu" + "github.com/pkg/errors" + "github.com/sirupsen/logrus" + "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/trace" +) + +const ( + BlockAccessListDeriverName = xatu.CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST +) + +// BlockAccessListDeriverConfig holds the configuration for the BAL deriver. +type BlockAccessListDeriverConfig struct { + Enabled bool `yaml:"enabled" default:"true"` + Iterator iterator.BackfillingCheckpointConfig `yaml:"iterator"` +} + +// BlockAccessListDeriver extracts block access list data from Gloas beacon blocks. +// BAL (Block Access List) is introduced in EIP-7732 (ePBS) and only exists from +// the Gloas fork onwards. The BAL data comes from the ExecutionPayloadEnvelope, +// not the beacon block body itself; the extraction logic will be filled in once +// envelope data is available. +type BlockAccessListDeriver struct { + log logrus.FieldLogger + cfg *BlockAccessListDeriverConfig + iterator *iterator.BackfillingCheckpoint + onEventsCallbacks []func(ctx context.Context, events []*xatu.DecoratedEvent) error + beacon *ethereum.BeaconNode + clientMeta *xatu.ClientMeta +} + +// NewBlockAccessListDeriver creates a new BlockAccessListDeriver. +func NewBlockAccessListDeriver( + log logrus.FieldLogger, + config *BlockAccessListDeriverConfig, + iter *iterator.BackfillingCheckpoint, + beacon *ethereum.BeaconNode, + clientMeta *xatu.ClientMeta, +) *BlockAccessListDeriver { + return &BlockAccessListDeriver{ + log: log.WithFields(logrus.Fields{ + "module": "cannon/event/beacon/eth/v2/block_access_list", + "type": BlockAccessListDeriverName.String(), + }), + cfg: config, + iterator: iter, + beacon: beacon, + clientMeta: clientMeta, + } +} + +// CannonType returns the cannon type for this deriver. +func (b *BlockAccessListDeriver) CannonType() xatu.CannonType { + return BlockAccessListDeriverName +} + +// Name returns the human-readable name for this deriver. +func (b *BlockAccessListDeriver) Name() string { + return BlockAccessListDeriverName.String() +} + +// ActivationFork returns the fork at which this deriver activates. +func (b *BlockAccessListDeriver) ActivationFork() spec.DataVersion { + return spec.DataVersionGloas +} + +// OnEventsDerived registers a callback for when events are derived. +func (b *BlockAccessListDeriver) OnEventsDerived( + ctx context.Context, + fn func(ctx context.Context, events []*xatu.DecoratedEvent) error, +) { + b.onEventsCallbacks = append(b.onEventsCallbacks, fn) +} + +// Start begins the deriver's main processing loop. +func (b *BlockAccessListDeriver) Start(ctx context.Context) error { + if !b.cfg.Enabled { + b.log.Info("Block access list deriver disabled") + + return nil + } + + b.log.Info("Block access list deriver enabled") + + if err := b.iterator.Start(ctx, b.ActivationFork()); err != nil { + return errors.Wrap(err, "failed to start iterator") + } + + // Start our main loop + b.run(ctx) + + return nil +} + +// Stop gracefully stops the deriver. +func (b *BlockAccessListDeriver) Stop(ctx context.Context) error { + return nil +} + +func (b *BlockAccessListDeriver) run(rctx context.Context) { + bo := backoff.NewExponentialBackOff() + bo.MaxInterval = 3 * time.Minute + + for { + select { + case <-rctx.Done(): + return + default: + operation := func() (string, error) { + ctx, span := observability.Tracer().Start(rctx, + fmt.Sprintf("Derive %s", b.Name()), + trace.WithAttributes( + attribute.String("network", + string(b.beacon.Metadata().Network.Name))), + ) + defer span.End() + + time.Sleep(100 * time.Millisecond) + + if err := b.beacon.Synced(ctx); err != nil { + return "", err + } + + // Get the next position + position, err := b.iterator.Next(ctx) + if err != nil { + return "", err + } + + // Process the epoch + events, err := b.processEpoch(ctx, position.Next) + if err != nil { + b.log.WithError(err).Error("Failed to process epoch") + + return "", err + } + + // Look ahead + b.lookAhead(ctx, position.LookAheads) + + for _, fn := range b.onEventsCallbacks { + if errr := fn(ctx, events); errr != nil { + return "", errors.Wrapf(errr, "failed to send events") + } + } + + // Update our location + if err := b.iterator.UpdateLocation(ctx, position.Next, + position.Direction); err != nil { + return "", err + } + + bo.Reset() + + return "", nil + } + + retryOpts := []backoff.RetryOption{ + backoff.WithBackOff(bo), + backoff.WithNotify(func(err error, timer time.Duration) { + b.log.WithError(err).WithField("next_attempt", timer). + Warn("Failed to process") + }), + } + + if _, err := backoff.Retry(rctx, operation, retryOpts...); err != nil { + b.log.WithError(err).Warn("Failed to process") + } + } + } +} + +func (b *BlockAccessListDeriver) processEpoch( + ctx context.Context, + epoch phase0.Epoch, +) ([]*xatu.DecoratedEvent, error) { + ctx, span := observability.Tracer().Start(ctx, + "BlockAccessListDeriver.processEpoch", + trace.WithAttributes(attribute.Int64("epoch", int64(epoch))), + ) + defer span.End() + + sp, err := b.beacon.Node().Spec() + if err != nil { + return nil, errors.Wrap(err, "failed to obtain spec") + } + + allEvents := make([]*xatu.DecoratedEvent, 0, sp.SlotsPerEpoch) + + for i := uint64(0); i <= uint64(sp.SlotsPerEpoch-1); i++ { + slot := phase0.Slot(i + uint64(epoch)*uint64(sp.SlotsPerEpoch)) + + events, err := b.processSlot(ctx, slot) + if err != nil { + return nil, errors.Wrapf(err, "failed to process slot %d", slot) + } + + allEvents = append(allEvents, events...) + } + + return allEvents, nil +} + +func (b *BlockAccessListDeriver) processSlot( + ctx context.Context, + slot phase0.Slot, +) ([]*xatu.DecoratedEvent, error) { + ctx, span := observability.Tracer().Start(ctx, + "BlockAccessListDeriver.processSlot", + trace.WithAttributes(attribute.Int64("slot", int64(slot))), + ) + defer span.End() + + // Get the block + block, err := b.beacon.GetBeaconBlock(ctx, xatuethv1.SlotAsString(slot)) + if err != nil { + return nil, errors.Wrapf(err, + "failed to get beacon block for slot %d", slot) + } + + if block == nil { + return []*xatu.DecoratedEvent{}, nil + } + + // BAL only exists from Gloas onwards. Pre-Gloas blocks have no BAL data. + if block.Version < spec.DataVersionGloas { + return []*xatu.DecoratedEvent{}, nil + } + + // TODO: Extract BAL data from ExecutionPayloadEnvelope once envelope + // data is available. For now, return empty events since BAL comes from + // the ExecutionPayloadEnvelope, not the beacon block body. + return []*xatu.DecoratedEvent{}, nil +} + +// lookAhead attempts to pre-load any blocks that might be required for +// the epochs that are coming up. +func (b *BlockAccessListDeriver) lookAhead( + ctx context.Context, + epochs []phase0.Epoch, +) { + _, span := observability.Tracer().Start(ctx, + "BlockAccessListDeriver.lookAhead", + ) + defer span.End() + + sp, err := b.beacon.Node().Spec() + if err != nil { + b.log.WithError(err).Warn("Failed to look ahead at epoch") + + return + } + + for _, epoch := range epochs { + for i := uint64(0); i <= uint64(sp.SlotsPerEpoch-1); i++ { + slot := phase0.Slot(i + uint64(epoch)*uint64(sp.SlotsPerEpoch)) + + // Add the block to the preload queue so it's available when + // we need it + b.beacon.LazyLoadBeaconBlock(xatuethv1.SlotAsString(slot)) + } + } +} diff --git a/pkg/cannon/deriver/beacon/eth/v2/execution_transaction.go b/pkg/cannon/deriver/beacon/eth/v2/execution_transaction.go index c5f404b0c..2073a494e 100644 --- a/pkg/cannon/deriver/beacon/eth/v2/execution_transaction.go +++ b/pkg/cannon/deriver/beacon/eth/v2/execution_transaction.go @@ -238,6 +238,12 @@ func (b *ExecutionTransactionDeriver) processSlot(ctx context.Context, slot phas return []*xatu.DecoratedEvent{}, nil } + // Gloas (EIP-7732 ePBS) blocks do not contain an ExecutionPayload in the + // beacon block body, so there are no transactions to extract. + if block.Version == spec.DataVersionGloas { + return []*xatu.DecoratedEvent{}, nil + } + blockIdentifier, err := GetBlockIdentifier(block, b.beacon.Metadata().Wallclock()) if err != nil { return nil, errors.Wrapf(err, "failed to get block identifier for slot %d", slot) diff --git a/pkg/cannon/deriver/config.go b/pkg/cannon/deriver/config.go index c1fec7b78..5777d7f6a 100644 --- a/pkg/cannon/deriver/config.go +++ b/pkg/cannon/deriver/config.go @@ -21,6 +21,7 @@ type Config struct { BeaconCommitteeConfig v1.BeaconCommitteeDeriverConfig `yaml:"beaconCommittee"` BeaconSyncCommitteeConfig v1.BeaconSyncCommitteeDeriverConfig `yaml:"beaconSyncCommittee"` BeaconBlockSyncAggregateConfig v2.BeaconBlockSyncAggregateDeriverConfig `yaml:"beaconBlockSyncAggregate"` + BlockAccessListConfig v2.BlockAccessListDeriverConfig `yaml:"blockAccessList"` } func (c *Config) Validate() error { diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go b/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go index 525fe1493..5b455cd37 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go @@ -69,7 +69,8 @@ func (b *beaconApiEthV2BeaconBlockBatch) validate(event *xatu.DecoratedEvent) er payload.GetCapellaBlock() == nil && payload.GetDenebBlock() == nil && payload.GetElectraBlock() == nil && - payload.GetFuluBlock() == nil { + payload.GetFuluBlock() == nil && + payload.GetGloasBlock() == nil { return fmt.Errorf("nil Message: %w", route.ErrInvalidEvent) } @@ -249,6 +250,32 @@ func (b *beaconApiEthV2BeaconBlockBatch) appendPayloadFromEventBlockV2( return b.appendExecutionPayloadElectra(body.GetExecutionPayload()) } + if gloasBlock := eventBlock.GetGloasBlock(); gloasBlock != nil { + if slot := gloasBlock.GetSlot(); slot != nil { + b.Slot.Append(uint32(slot.GetValue())) //nolint:gosec // slot fits uint32 + } else { + b.Slot.Append(0) + } + + b.ParentRoot.Append([]byte(gloasBlock.GetParentRoot())) + b.StateRoot.Append([]byte(gloasBlock.GetStateRoot())) + + if pi := gloasBlock.GetProposerIndex(); pi != nil { + b.ProposerIndex.Append(uint32(pi.GetValue())) //nolint:gosec // proposer index fits uint32 + } else { + b.ProposerIndex.Append(0) + } + + body := gloasBlock.GetBody() + b.appendEth1Data(body.GetEth1Data()) + + // Gloas (EIP-7732 ePBS) does not carry an ExecutionPayload in the + // beacon block body; it arrives via a separate ExecutionPayloadEnvelope. + b.appendNoExecutionPayload() + + return nil + } + // Unknown block type: append zero values. b.Slot.Append(0) b.ParentRoot.Append(nil) diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block.go b/pkg/consumoor/route/canonical/canonical_beacon_block.go index 6cd1c6bdc..3d639c0a1 100644 --- a/pkg/consumoor/route/canonical/canonical_beacon_block.go +++ b/pkg/consumoor/route/canonical/canonical_beacon_block.go @@ -241,6 +241,32 @@ func (b *canonicalBeaconBlockBatch) appendPayloadFromEventBlockV2(eventBlock *et return b.appendExecutionPayloadElectra(body.GetExecutionPayload()) } + if gloasBlock := eventBlock.GetGloasBlock(); gloasBlock != nil { + if slot := gloasBlock.GetSlot(); slot != nil { + b.Slot.Append(uint32(slot.GetValue())) + } else { + b.Slot.Append(0) + } + + if proposerIndex := gloasBlock.GetProposerIndex(); proposerIndex != nil { + b.ProposerIndex.Append(uint32(proposerIndex.GetValue())) + } else { + b.ProposerIndex.Append(0) + } + + b.ParentRoot.Append([]byte(gloasBlock.GetParentRoot())) + b.StateRoot.Append([]byte(gloasBlock.GetStateRoot())) + + body := gloasBlock.GetBody() + b.appendEth1Data(body.GetEth1Data()) + + // Gloas (EIP-7732 ePBS) does not carry an ExecutionPayload in the + // beacon block body; it arrives via a separate ExecutionPayloadEnvelope. + b.appendNullExecutionPayload() + + return nil + } + // Unknown block version - append zeros. b.Slot.Append(0) b.ProposerIndex.Append(0) diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.gen.go b/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.gen.go new file mode 100644 index 000000000..29f84dbba --- /dev/null +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.gen.go @@ -0,0 +1,281 @@ +// Code generated by chgo-rowgen; DO NOT EDIT. + +package canonical + +import ( + "net" + + "github.com/ClickHouse/ch-go/proto" + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +const canonicalBeaconBlockAccessListTableName route.TableName = "canonical_beacon_block_access_list" + +type canonicalBeaconBlockAccessListBatch struct { + UpdatedDateTime proto.ColDateTime + Slot proto.ColUInt32 + SlotStartDateTime proto.ColDateTime + Epoch proto.ColUInt32 + EpochStartDateTime proto.ColDateTime + BlockRoot route.SafeColFixedStr + BlockNumber proto.ColUInt32 + BlockHash route.SafeColFixedStr + Address route.SafeColFixedStr + ChangeType proto.ColStr + BlockAccessIndex proto.ColUInt32 + StorageKey *proto.ColNullable[string] + NewValue *proto.ColNullable[string] + MetaClientName proto.ColStr + MetaClientID proto.ColStr + MetaClientVersion proto.ColStr + MetaClientImplementation proto.ColStr + MetaClientOS proto.ColStr + MetaClientIP *proto.ColNullable[proto.IPv6] + MetaClientGeoCity proto.ColStr + MetaClientGeoCountry proto.ColStr + MetaClientGeoCountryCode proto.ColStr + MetaClientGeoContinentCode proto.ColStr + MetaClientGeoLongitude *proto.ColNullable[float64] + MetaClientGeoLatitude *proto.ColNullable[float64] + MetaClientGeoAutonomousSystemNumber *proto.ColNullable[uint32] + MetaClientGeoAutonomousSystemOrganization *proto.ColNullable[string] + MetaNetworkID proto.ColInt32 + MetaNetworkName proto.ColStr + MetaConsensusVersion proto.ColStr + MetaConsensusVersionMajor proto.ColStr + MetaConsensusVersionMinor proto.ColStr + MetaConsensusVersionPatch proto.ColStr + MetaConsensusImplementation proto.ColStr + MetaLabels *proto.ColMap[string, string] + rows int +} + +func newcanonicalBeaconBlockAccessListBatch() *canonicalBeaconBlockAccessListBatch { + return &canonicalBeaconBlockAccessListBatch{ + BlockRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + BlockHash: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + Address: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(42); return c }(), + StorageKey: new(proto.ColStr).Nullable(), + NewValue: new(proto.ColStr).Nullable(), + MetaClientIP: new(proto.ColIPv6).Nullable(), + MetaClientGeoLongitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoLatitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoAutonomousSystemNumber: new(proto.ColUInt32).Nullable(), + MetaClientGeoAutonomousSystemOrganization: new(proto.ColStr).Nullable(), + MetaLabels: proto.NewMap[string, string](new(proto.ColStr), new(proto.ColStr)), + } +} + +func (b *canonicalBeaconBlockAccessListBatch) Rows() int { + return b.rows +} + +func (b *canonicalBeaconBlockAccessListBatch) appendMetadata(event *xatu.DecoratedEvent) { + if event == nil || event.GetMeta() == nil { + b.MetaClientName.Append("") + b.MetaClientID.Append("") + b.MetaClientVersion.Append("") + b.MetaClientImplementation.Append("") + b.MetaClientOS.Append("") + b.MetaClientIP.Append(proto.Nullable[proto.IPv6]{}) + b.MetaClientGeoCity.Append("") + b.MetaClientGeoCountry.Append("") + b.MetaClientGeoCountryCode.Append("") + b.MetaClientGeoContinentCode.Append("") + b.MetaClientGeoLongitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoLatitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.Nullable[uint32]{}) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.Nullable[string]{}) + b.MetaNetworkID.Append(0) + b.MetaNetworkName.Append("") + b.MetaConsensusVersion.Append("") + b.MetaConsensusVersionMajor.Append("") + b.MetaConsensusVersionMinor.Append("") + b.MetaConsensusVersionPatch.Append("") + b.MetaConsensusImplementation.Append("") + b.MetaLabels.Append(nil) + return + } + + b.MetaClientName.Append(event.GetMeta().GetClient().GetName()) + b.MetaClientID.Append(event.GetMeta().GetClient().GetId()) + b.MetaClientVersion.Append(event.GetMeta().GetClient().GetVersion()) + b.MetaClientImplementation.Append(event.GetMeta().GetClient().GetImplementation()) + b.MetaClientOS.Append(event.GetMeta().GetClient().GetOs()) + b.MetaClientIP.Append(proto.NewNullable[proto.IPv6](route.NormalizeIPToIPv6(event.GetMeta().GetServer().GetClient().GetIP()))) + b.MetaClientGeoCity.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCity()) + b.MetaClientGeoCountry.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountry()) + b.MetaClientGeoCountryCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountryCode()) + b.MetaClientGeoContinentCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetContinentCode()) + b.MetaClientGeoLongitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLongitude())) + b.MetaClientGeoLatitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLatitude())) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.NewNullable[uint32](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemNumber())) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.NewNullable[string](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemOrganization())) + b.MetaNetworkID.Append(int32(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetId())) + b.MetaNetworkName.Append(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetName()) + b.MetaConsensusVersion.Append(route.NormalizeConsensusVersion(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionMajor.Append(route.ConsensusVersionMajor(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionMinor.Append(route.ConsensusVersionMinor(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionPatch.Append(route.ConsensusVersionPatch(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusImplementation.Append(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetImplementation()) + if labels := event.GetMeta().GetClient().GetLabels(); labels != nil { + b.MetaLabels.Append(labels) + } else { + b.MetaLabels.Append(map[string]string{}) + } +} + +func (b *canonicalBeaconBlockAccessListBatch) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &b.UpdatedDateTime}, + {Name: "slot", Data: &b.Slot}, + {Name: "slot_start_date_time", Data: &b.SlotStartDateTime}, + {Name: "epoch", Data: &b.Epoch}, + {Name: "epoch_start_date_time", Data: &b.EpochStartDateTime}, + {Name: "block_root", Data: &b.BlockRoot}, + {Name: "block_number", Data: &b.BlockNumber}, + {Name: "block_hash", Data: &b.BlockHash}, + {Name: "address", Data: &b.Address}, + {Name: "change_type", Data: &b.ChangeType}, + {Name: "block_access_index", Data: &b.BlockAccessIndex}, + {Name: "storage_key", Data: b.StorageKey}, + {Name: "new_value", Data: b.NewValue}, + {Name: "meta_client_name", Data: &b.MetaClientName}, + {Name: "meta_client_id", Data: &b.MetaClientID}, + {Name: "meta_client_version", Data: &b.MetaClientVersion}, + {Name: "meta_client_implementation", Data: &b.MetaClientImplementation}, + {Name: "meta_client_os", Data: &b.MetaClientOS}, + {Name: "meta_client_ip", Data: b.MetaClientIP}, + {Name: "meta_client_geo_city", Data: &b.MetaClientGeoCity}, + {Name: "meta_client_geo_country", Data: &b.MetaClientGeoCountry}, + {Name: "meta_client_geo_country_code", Data: &b.MetaClientGeoCountryCode}, + {Name: "meta_client_geo_continent_code", Data: &b.MetaClientGeoContinentCode}, + {Name: "meta_client_geo_longitude", Data: b.MetaClientGeoLongitude}, + {Name: "meta_client_geo_latitude", Data: b.MetaClientGeoLatitude}, + {Name: "meta_client_geo_autonomous_system_number", Data: b.MetaClientGeoAutonomousSystemNumber}, + {Name: "meta_client_geo_autonomous_system_organization", Data: b.MetaClientGeoAutonomousSystemOrganization}, + {Name: "meta_network_id", Data: &b.MetaNetworkID}, + {Name: "meta_network_name", Data: &b.MetaNetworkName}, + {Name: "meta_consensus_version", Data: &b.MetaConsensusVersion}, + {Name: "meta_consensus_version_major", Data: &b.MetaConsensusVersionMajor}, + {Name: "meta_consensus_version_minor", Data: &b.MetaConsensusVersionMinor}, + {Name: "meta_consensus_version_patch", Data: &b.MetaConsensusVersionPatch}, + {Name: "meta_consensus_implementation", Data: &b.MetaConsensusImplementation}, + {Name: "meta_labels", Data: b.MetaLabels}, + } +} + +func (b *canonicalBeaconBlockAccessListBatch) Reset() { + b.UpdatedDateTime.Reset() + b.Slot.Reset() + b.SlotStartDateTime.Reset() + b.Epoch.Reset() + b.EpochStartDateTime.Reset() + b.BlockRoot.Reset() + b.BlockNumber.Reset() + b.BlockHash.Reset() + b.Address.Reset() + b.ChangeType.Reset() + b.BlockAccessIndex.Reset() + b.StorageKey.Reset() + b.NewValue.Reset() + b.MetaClientName.Reset() + b.MetaClientID.Reset() + b.MetaClientVersion.Reset() + b.MetaClientImplementation.Reset() + b.MetaClientOS.Reset() + b.MetaClientIP.Reset() + b.MetaClientGeoCity.Reset() + b.MetaClientGeoCountry.Reset() + b.MetaClientGeoCountryCode.Reset() + b.MetaClientGeoContinentCode.Reset() + b.MetaClientGeoLongitude.Reset() + b.MetaClientGeoLatitude.Reset() + b.MetaClientGeoAutonomousSystemNumber.Reset() + b.MetaClientGeoAutonomousSystemOrganization.Reset() + b.MetaNetworkID.Reset() + b.MetaNetworkName.Reset() + b.MetaConsensusVersion.Reset() + b.MetaConsensusVersionMajor.Reset() + b.MetaConsensusVersionMinor.Reset() + b.MetaConsensusVersionPatch.Reset() + b.MetaConsensusImplementation.Reset() + b.MetaLabels.Reset() + b.rows = 0 +} + +func (b *canonicalBeaconBlockAccessListBatch) Snapshot() []map[string]any { + n := b.rows + out := make([]map[string]any, n) + + for i := 0; i < n; i++ { + row := make(map[string]any, 36) + row["updated_date_time"] = b.UpdatedDateTime.Row(i).Unix() + row["slot"] = b.Slot.Row(i) + row["slot_start_date_time"] = b.SlotStartDateTime.Row(i).Unix() + row["epoch"] = b.Epoch.Row(i) + row["epoch_start_date_time"] = b.EpochStartDateTime.Row(i).Unix() + row["block_root"] = string(b.BlockRoot.Row(i)) + row["block_number"] = b.BlockNumber.Row(i) + row["block_hash"] = string(b.BlockHash.Row(i)) + row["address"] = string(b.Address.Row(i)) + row["change_type"] = b.ChangeType.Row(i) + row["block_access_index"] = b.BlockAccessIndex.Row(i) + if v := b.StorageKey.Row(i); v.Set { + row["storage_key"] = v.Value + } else { + row["storage_key"] = nil + } + if v := b.NewValue.Row(i); v.Set { + row["new_value"] = v.Value + } else { + row["new_value"] = nil + } + row["meta_client_name"] = b.MetaClientName.Row(i) + row["meta_client_id"] = b.MetaClientID.Row(i) + row["meta_client_version"] = b.MetaClientVersion.Row(i) + row["meta_client_implementation"] = b.MetaClientImplementation.Row(i) + row["meta_client_os"] = b.MetaClientOS.Row(i) + if v := b.MetaClientIP.Row(i); v.Set { + row["meta_client_ip"] = net.IP(v.Value[:]).String() + } else { + row["meta_client_ip"] = nil + } + row["meta_client_geo_city"] = b.MetaClientGeoCity.Row(i) + row["meta_client_geo_country"] = b.MetaClientGeoCountry.Row(i) + row["meta_client_geo_country_code"] = b.MetaClientGeoCountryCode.Row(i) + row["meta_client_geo_continent_code"] = b.MetaClientGeoContinentCode.Row(i) + if v := b.MetaClientGeoLongitude.Row(i); v.Set { + row["meta_client_geo_longitude"] = v.Value + } else { + row["meta_client_geo_longitude"] = nil + } + if v := b.MetaClientGeoLatitude.Row(i); v.Set { + row["meta_client_geo_latitude"] = v.Value + } else { + row["meta_client_geo_latitude"] = nil + } + if v := b.MetaClientGeoAutonomousSystemNumber.Row(i); v.Set { + row["meta_client_geo_autonomous_system_number"] = v.Value + } else { + row["meta_client_geo_autonomous_system_number"] = nil + } + if v := b.MetaClientGeoAutonomousSystemOrganization.Row(i); v.Set { + row["meta_client_geo_autonomous_system_organization"] = v.Value + } else { + row["meta_client_geo_autonomous_system_organization"] = nil + } + row["meta_network_id"] = b.MetaNetworkID.Row(i) + row["meta_network_name"] = b.MetaNetworkName.Row(i) + row["meta_consensus_version"] = b.MetaConsensusVersion.Row(i) + row["meta_consensus_version_major"] = b.MetaConsensusVersionMajor.Row(i) + row["meta_consensus_version_minor"] = b.MetaConsensusVersionMinor.Row(i) + row["meta_consensus_version_patch"] = b.MetaConsensusVersionPatch.Row(i) + row["meta_consensus_implementation"] = b.MetaConsensusImplementation.Row(i) + row["meta_labels"] = b.MetaLabels.Row(i) + out[i] = row + } + + return out +} diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.go b/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.go new file mode 100644 index 000000000..6a9166386 --- /dev/null +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.go @@ -0,0 +1,119 @@ +package canonical + +import ( + "fmt" + "time" + + "github.com/ClickHouse/ch-go/proto" + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +var canonicalBeaconBlockAccessListEventNames = []xatu.Event_Name{ + xatu.Event_BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST, +} + +func init() { + r, err := route.NewStaticRoute( + canonicalBeaconBlockAccessListTableName, + canonicalBeaconBlockAccessListEventNames, + func() route.ColumnarBatch { return newcanonicalBeaconBlockAccessListBatch() }, + ) + if err != nil { + route.RecordError(err) + + return + } + + if err := route.Register(r); err != nil { + route.RecordError(err) + } +} + +func (b *canonicalBeaconBlockAccessListBatch) FlattenTo(event *xatu.DecoratedEvent) error { + if event == nil || event.GetEvent() == nil { + return nil + } + + if event.GetEthV2BeaconBlockAccessList() == nil { + return fmt.Errorf("nil eth_v2_beacon_block_access_list payload: %w", route.ErrInvalidEvent) + } + + if err := b.validate(event); err != nil { + return err + } + + b.appendRuntime(event) + b.appendMetadata(event) + + if err := b.appendPayload(event); err != nil { + return err + } + + b.appendAdditionalData(event) + b.rows++ + + return nil +} + +func (b *canonicalBeaconBlockAccessListBatch) validate(event *xatu.DecoratedEvent) error { + payload := event.GetEthV2BeaconBlockAccessList() + + if payload.GetAddress() == nil { + return fmt.Errorf("nil Address: %w", route.ErrInvalidEvent) + } + + return nil +} + +func (b *canonicalBeaconBlockAccessListBatch) appendRuntime(_ *xatu.DecoratedEvent) { + b.UpdatedDateTime.Append(time.Now()) +} + +func (b *canonicalBeaconBlockAccessListBatch) appendPayload(event *xatu.DecoratedEvent) error { + change := event.GetEthV2BeaconBlockAccessList() + + b.Address.Append([]byte(change.GetAddress().GetValue())) + b.ChangeType.Append(change.GetChangeType()) + + if blockAccessIndex := change.GetBlockAccessIndex(); blockAccessIndex != nil { + b.BlockAccessIndex.Append(blockAccessIndex.GetValue()) + } else { + b.BlockAccessIndex.Append(0) + } + + if storageKey := change.GetStorageKey(); storageKey != nil { + b.StorageKey.Append(proto.NewNullable[string](storageKey.GetValue())) + } else { + b.StorageKey.Append(proto.Nullable[string]{}) + } + + if newValue := change.GetNewValue(); newValue != nil { + b.NewValue.Append(proto.NewNullable[string](newValue.GetValue())) + } else { + b.NewValue.Append(proto.Nullable[string]{}) + } + + return nil +} + +func (b *canonicalBeaconBlockAccessListBatch) appendAdditionalData(event *xatu.DecoratedEvent) { + additional := event.GetMeta().GetClient().GetEthV2BeaconBlockAccessList() + if additional == nil { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + b.BlockRoot.Append(nil) + b.BlockNumber.Append(0) + b.BlockHash.Append(nil) + + return + } + + appendBlockIdentifier(additional.GetBlock(), + &b.Slot, &b.SlotStartDateTime, &b.Epoch, &b.EpochStartDateTime, nil, &b.BlockRoot) + + b.BlockNumber.Append(0) + b.BlockHash.Append(nil) +} diff --git a/pkg/proto/eth/block.go b/pkg/proto/eth/block.go index 8610ee9c0..04a33b1aa 100644 --- a/pkg/proto/eth/block.go +++ b/pkg/proto/eth/block.go @@ -11,6 +11,7 @@ import ( "github.com/attestantio/go-eth2-client/spec/capella" "github.com/attestantio/go-eth2-client/spec/deneb" "github.com/attestantio/go-eth2-client/spec/electra" + "github.com/attestantio/go-eth2-client/spec/gloas" "github.com/attestantio/go-eth2-client/spec/phase0" v1 "github.com/ethpandaops/xatu/pkg/proto/eth/v1" v2 "github.com/ethpandaops/xatu/pkg/proto/eth/v2" @@ -35,6 +36,8 @@ func NewEventBlockV2FromVersionedProposal(proposal *api.VersionedProposal) (*v2. data = NewEventBlockFromElectra(proposal.Electra.Block, nil) case spec.DataVersionFulu: data = NewEventBlockFromFulu(proposal.Fulu.Block, nil) + case spec.DataVersionGloas: + return nil, fmt.Errorf("gloas proposals not yet supported in go-eth2-client") default: return nil, fmt.Errorf("unsupported block version: %v", proposal.Version) } @@ -60,6 +63,8 @@ func NewEventBlockV2FromVersionSignedBeaconBlock(block *spec.VersionedSignedBeac data = NewEventBlockFromElectra(block.Electra.Message, &block.Electra.Signature) case spec.DataVersionFulu: data = NewEventBlockFromFulu(block.Fulu.Message, &block.Fulu.Signature) + case spec.DataVersionGloas: + data = NewEventBlockFromGloas(block.Gloas.Message, &block.Gloas.Signature) default: return nil, fmt.Errorf("unsupported block version: %v", block.Version) } @@ -456,3 +461,45 @@ func NewEventBlockFromFulu(block *electra.BeaconBlock, signature *phase0.BLSSign return event } + +// NewEventBlockFromGloas creates an EventBlockV2 from a Gloas (EIP-7732 ePBS) beacon block. +// Gloas blocks use SignedExecutionPayloadBid instead of a direct ExecutionPayload, +// so the execution payload fields are left unpopulated in the proto. +func NewEventBlockFromGloas(block *gloas.BeaconBlock, signature *phase0.BLSSignature) *v2.EventBlockV2 { + event := &v2.EventBlockV2{ + Version: v2.BlockVersion_GLOAS, + Message: &v2.EventBlockV2_GloasBlock{ + GloasBlock: &v2.BeaconBlockGloas{ + Slot: &wrapperspb.UInt64Value{Value: uint64(block.Slot)}, + ProposerIndex: &wrapperspb.UInt64Value{Value: uint64(block.ProposerIndex)}, + ParentRoot: block.ParentRoot.String(), + StateRoot: block.StateRoot.String(), + Body: &v2.BeaconBlockBodyGloas{ + RandaoReveal: block.Body.RANDAOReveal.String(), + Eth1Data: &v1.Eth1Data{ + DepositRoot: block.Body.ETH1Data.DepositRoot.String(), + DepositCount: block.Body.ETH1Data.DepositCount, + BlockHash: fmt.Sprintf("0x%x", block.Body.ETH1Data.BlockHash), + }, + Graffiti: fmt.Sprintf("0x%x", block.Body.Graffiti[:]), + ProposerSlashings: v1.NewProposerSlashingsFromPhase0(block.Body.ProposerSlashings), + AttesterSlashings: v1.NewAttesterSlashingsFromElectra(block.Body.AttesterSlashings), + Attestations: v1.NewAttestationsFromElectra(block.Body.Attestations), + Deposits: v1.NewDepositsFromPhase0(block.Body.Deposits), + VoluntaryExits: v1.NewSignedVoluntaryExitsFromPhase0(block.Body.VoluntaryExits), + SyncAggregate: &v1.SyncAggregate{ + SyncCommitteeBits: fmt.Sprintf("0x%x", block.Body.SyncAggregate.SyncCommitteeBits), + SyncCommitteeSignature: block.Body.SyncAggregate.SyncCommitteeSignature.String(), + }, + BlsToExecutionChanges: v2.NewBLSToExecutionChangesFromCapella(block.Body.BLSToExecutionChanges), + }, + }, + }, + } + + if signature != nil && !signature.IsZero() { + event.Signature = signature.String() + } + + return event +} diff --git a/pkg/proto/eth/v1/block_access_list.pb.go b/pkg/proto/eth/v1/block_access_list.pb.go new file mode 100644 index 000000000..b457acb99 --- /dev/null +++ b/pkg/proto/eth/v1/block_access_list.pb.go @@ -0,0 +1,737 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.34.2 +// protoc (unknown) +// source: pkg/proto/eth/v1/block_access_list.proto + +package v1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + _ "google.golang.org/protobuf/types/descriptorpb" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + 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 BlockAccessListStorageChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BlockAccessIndex *wrapperspb.UInt32Value `protobuf:"bytes,1,opt,name=block_access_index,proto3" json:"block_access_index,omitempty"` + Key *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` + NewValue *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=new_value,proto3" json:"new_value,omitempty"` +} + +func (x *BlockAccessListStorageChange) Reset() { + *x = BlockAccessListStorageChange{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockAccessListStorageChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockAccessListStorageChange) ProtoMessage() {} + +func (x *BlockAccessListStorageChange) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_block_access_list_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 BlockAccessListStorageChange.ProtoReflect.Descriptor instead. +func (*BlockAccessListStorageChange) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_block_access_list_proto_rawDescGZIP(), []int{0} +} + +func (x *BlockAccessListStorageChange) GetBlockAccessIndex() *wrapperspb.UInt32Value { + if x != nil { + return x.BlockAccessIndex + } + return nil +} + +func (x *BlockAccessListStorageChange) GetKey() *wrapperspb.StringValue { + if x != nil { + return x.Key + } + return nil +} + +func (x *BlockAccessListStorageChange) GetNewValue() *wrapperspb.StringValue { + if x != nil { + return x.NewValue + } + return nil +} + +type BlockAccessListBalanceChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BlockAccessIndex *wrapperspb.UInt32Value `protobuf:"bytes,1,opt,name=block_access_index,proto3" json:"block_access_index,omitempty"` + PostBalance *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=post_balance,proto3" json:"post_balance,omitempty"` +} + +func (x *BlockAccessListBalanceChange) Reset() { + *x = BlockAccessListBalanceChange{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockAccessListBalanceChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockAccessListBalanceChange) ProtoMessage() {} + +func (x *BlockAccessListBalanceChange) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_block_access_list_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 BlockAccessListBalanceChange.ProtoReflect.Descriptor instead. +func (*BlockAccessListBalanceChange) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_block_access_list_proto_rawDescGZIP(), []int{1} +} + +func (x *BlockAccessListBalanceChange) GetBlockAccessIndex() *wrapperspb.UInt32Value { + if x != nil { + return x.BlockAccessIndex + } + return nil +} + +func (x *BlockAccessListBalanceChange) GetPostBalance() *wrapperspb.StringValue { + if x != nil { + return x.PostBalance + } + return nil +} + +type BlockAccessListNonceChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BlockAccessIndex *wrapperspb.UInt32Value `protobuf:"bytes,1,opt,name=block_access_index,proto3" json:"block_access_index,omitempty"` + NewNonce *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=new_nonce,proto3" json:"new_nonce,omitempty"` +} + +func (x *BlockAccessListNonceChange) Reset() { + *x = BlockAccessListNonceChange{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockAccessListNonceChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockAccessListNonceChange) ProtoMessage() {} + +func (x *BlockAccessListNonceChange) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_block_access_list_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 BlockAccessListNonceChange.ProtoReflect.Descriptor instead. +func (*BlockAccessListNonceChange) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_block_access_list_proto_rawDescGZIP(), []int{2} +} + +func (x *BlockAccessListNonceChange) GetBlockAccessIndex() *wrapperspb.UInt32Value { + if x != nil { + return x.BlockAccessIndex + } + return nil +} + +func (x *BlockAccessListNonceChange) GetNewNonce() *wrapperspb.UInt64Value { + if x != nil { + return x.NewNonce + } + return nil +} + +type BlockAccessListCodeChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BlockAccessIndex *wrapperspb.UInt32Value `protobuf:"bytes,1,opt,name=block_access_index,proto3" json:"block_access_index,omitempty"` + NewCode *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=new_code,proto3" json:"new_code,omitempty"` +} + +func (x *BlockAccessListCodeChange) Reset() { + *x = BlockAccessListCodeChange{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockAccessListCodeChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockAccessListCodeChange) ProtoMessage() {} + +func (x *BlockAccessListCodeChange) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_block_access_list_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 BlockAccessListCodeChange.ProtoReflect.Descriptor instead. +func (*BlockAccessListCodeChange) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_block_access_list_proto_rawDescGZIP(), []int{3} +} + +func (x *BlockAccessListCodeChange) GetBlockAccessIndex() *wrapperspb.UInt32Value { + if x != nil { + return x.BlockAccessIndex + } + return nil +} + +func (x *BlockAccessListCodeChange) GetNewCode() *wrapperspb.StringValue { + if x != nil { + return x.NewCode + } + return nil +} + +type BlockAccessListEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Address *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + StorageChanges []*BlockAccessListStorageChange `protobuf:"bytes,2,rep,name=storage_changes,proto3" json:"storage_changes,omitempty"` + BalanceChanges []*BlockAccessListBalanceChange `protobuf:"bytes,3,rep,name=balance_changes,proto3" json:"balance_changes,omitempty"` + NonceChanges []*BlockAccessListNonceChange `protobuf:"bytes,4,rep,name=nonce_changes,proto3" json:"nonce_changes,omitempty"` + CodeChanges []*BlockAccessListCodeChange `protobuf:"bytes,5,rep,name=code_changes,proto3" json:"code_changes,omitempty"` +} + +func (x *BlockAccessListEntry) Reset() { + *x = BlockAccessListEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockAccessListEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockAccessListEntry) ProtoMessage() {} + +func (x *BlockAccessListEntry) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_block_access_list_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 BlockAccessListEntry.ProtoReflect.Descriptor instead. +func (*BlockAccessListEntry) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_block_access_list_proto_rawDescGZIP(), []int{4} +} + +func (x *BlockAccessListEntry) GetAddress() *wrapperspb.StringValue { + if x != nil { + return x.Address + } + return nil +} + +func (x *BlockAccessListEntry) GetStorageChanges() []*BlockAccessListStorageChange { + if x != nil { + return x.StorageChanges + } + return nil +} + +func (x *BlockAccessListEntry) GetBalanceChanges() []*BlockAccessListBalanceChange { + if x != nil { + return x.BalanceChanges + } + return nil +} + +func (x *BlockAccessListEntry) GetNonceChanges() []*BlockAccessListNonceChange { + if x != nil { + return x.NonceChanges + } + return nil +} + +func (x *BlockAccessListEntry) GetCodeChanges() []*BlockAccessListCodeChange { + if x != nil { + return x.CodeChanges + } + return nil +} + +type BlockAccessList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Entries []*BlockAccessListEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` +} + +func (x *BlockAccessList) Reset() { + *x = BlockAccessList{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockAccessList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockAccessList) ProtoMessage() {} + +func (x *BlockAccessList) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_block_access_list_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 BlockAccessList.ProtoReflect.Descriptor instead. +func (*BlockAccessList) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_block_access_list_proto_rawDescGZIP(), []int{5} +} + +func (x *BlockAccessList) GetEntries() []*BlockAccessListEntry { + if x != nil { + return x.Entries + } + return nil +} + +// BlockAccessListChange is a denormalized representation of a single change +// within a block access list. Used for ClickHouse storage where each change +// becomes one row. +type BlockAccessListChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Address *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + // change_type is one of: "storage", "balance", "nonce", "code" + ChangeType string `protobuf:"bytes,2,opt,name=change_type,proto3" json:"change_type,omitempty"` + BlockAccessIndex *wrapperspb.UInt32Value `protobuf:"bytes,3,opt,name=block_access_index,proto3" json:"block_access_index,omitempty"` + // storage_key is set only for storage changes + StorageKey *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=storage_key,proto3" json:"storage_key,omitempty"` + // new_value contains the new value for any change type + NewValue *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=new_value,proto3" json:"new_value,omitempty"` +} + +func (x *BlockAccessListChange) Reset() { + *x = BlockAccessListChange{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockAccessListChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockAccessListChange) ProtoMessage() {} + +func (x *BlockAccessListChange) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_block_access_list_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 BlockAccessListChange.ProtoReflect.Descriptor instead. +func (*BlockAccessListChange) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_block_access_list_proto_rawDescGZIP(), []int{6} +} + +func (x *BlockAccessListChange) GetAddress() *wrapperspb.StringValue { + if x != nil { + return x.Address + } + return nil +} + +func (x *BlockAccessListChange) GetChangeType() string { + if x != nil { + return x.ChangeType + } + return "" +} + +func (x *BlockAccessListChange) GetBlockAccessIndex() *wrapperspb.UInt32Value { + if x != nil { + return x.BlockAccessIndex + } + return nil +} + +func (x *BlockAccessListChange) GetStorageKey() *wrapperspb.StringValue { + if x != nil { + return x.StorageKey + } + return nil +} + +func (x *BlockAccessListChange) GetNewValue() *wrapperspb.StringValue { + if x != nil { + return x.NewValue + } + return nil +} + +var File_pkg_proto_eth_v1_block_access_list_proto protoreflect.FileDescriptor + +var file_pkg_proto_eth_v1_block_access_list_proto_rawDesc = []byte{ + 0x0a, 0x28, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, + 0x76, 0x31, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, + 0x6c, 0x69, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd8, 0x01, 0x0a, 0x1c, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x4c, 0x0a, 0x12, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2e, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3a, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x1c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x4c, 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x40, 0x0a, 0x0c, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x62, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x1a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x4c, 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x12, 0x3a, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0xa3, + 0x01, 0x0a, 0x19, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x4c, 0x0a, 0x12, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x38, 0x0a, 0x08, 0x6e, 0x65, + 0x77, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x22, 0x93, 0x03, 0x0a, 0x14, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x36, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x53, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x0f, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0f, + 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, + 0x4d, 0x0a, 0x0d, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x0d, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x4a, + 0x0a, 0x0c, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0c, 0x63, 0x6f, + 0x64, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x4e, 0x0a, 0x0f, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3b, 0x0a, + 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0xbb, 0x02, 0x0a, 0x15, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x4c, + 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3e, 0x0a, 0x0b, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x12, 0x3a, 0x0a, 0x09, + 0x6e, 0x65, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6e, + 0x65, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, + 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_pkg_proto_eth_v1_block_access_list_proto_rawDescOnce sync.Once + file_pkg_proto_eth_v1_block_access_list_proto_rawDescData = file_pkg_proto_eth_v1_block_access_list_proto_rawDesc +) + +func file_pkg_proto_eth_v1_block_access_list_proto_rawDescGZIP() []byte { + file_pkg_proto_eth_v1_block_access_list_proto_rawDescOnce.Do(func() { + file_pkg_proto_eth_v1_block_access_list_proto_rawDescData = protoimpl.X.CompressGZIP(file_pkg_proto_eth_v1_block_access_list_proto_rawDescData) + }) + return file_pkg_proto_eth_v1_block_access_list_proto_rawDescData +} + +var file_pkg_proto_eth_v1_block_access_list_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_pkg_proto_eth_v1_block_access_list_proto_goTypes = []any{ + (*BlockAccessListStorageChange)(nil), // 0: xatu.eth.v1.BlockAccessListStorageChange + (*BlockAccessListBalanceChange)(nil), // 1: xatu.eth.v1.BlockAccessListBalanceChange + (*BlockAccessListNonceChange)(nil), // 2: xatu.eth.v1.BlockAccessListNonceChange + (*BlockAccessListCodeChange)(nil), // 3: xatu.eth.v1.BlockAccessListCodeChange + (*BlockAccessListEntry)(nil), // 4: xatu.eth.v1.BlockAccessListEntry + (*BlockAccessList)(nil), // 5: xatu.eth.v1.BlockAccessList + (*BlockAccessListChange)(nil), // 6: xatu.eth.v1.BlockAccessListChange + (*wrapperspb.UInt32Value)(nil), // 7: google.protobuf.UInt32Value + (*wrapperspb.StringValue)(nil), // 8: google.protobuf.StringValue + (*wrapperspb.UInt64Value)(nil), // 9: google.protobuf.UInt64Value +} +var file_pkg_proto_eth_v1_block_access_list_proto_depIdxs = []int32{ + 7, // 0: xatu.eth.v1.BlockAccessListStorageChange.block_access_index:type_name -> google.protobuf.UInt32Value + 8, // 1: xatu.eth.v1.BlockAccessListStorageChange.key:type_name -> google.protobuf.StringValue + 8, // 2: xatu.eth.v1.BlockAccessListStorageChange.new_value:type_name -> google.protobuf.StringValue + 7, // 3: xatu.eth.v1.BlockAccessListBalanceChange.block_access_index:type_name -> google.protobuf.UInt32Value + 8, // 4: xatu.eth.v1.BlockAccessListBalanceChange.post_balance:type_name -> google.protobuf.StringValue + 7, // 5: xatu.eth.v1.BlockAccessListNonceChange.block_access_index:type_name -> google.protobuf.UInt32Value + 9, // 6: xatu.eth.v1.BlockAccessListNonceChange.new_nonce:type_name -> google.protobuf.UInt64Value + 7, // 7: xatu.eth.v1.BlockAccessListCodeChange.block_access_index:type_name -> google.protobuf.UInt32Value + 8, // 8: xatu.eth.v1.BlockAccessListCodeChange.new_code:type_name -> google.protobuf.StringValue + 8, // 9: xatu.eth.v1.BlockAccessListEntry.address:type_name -> google.protobuf.StringValue + 0, // 10: xatu.eth.v1.BlockAccessListEntry.storage_changes:type_name -> xatu.eth.v1.BlockAccessListStorageChange + 1, // 11: xatu.eth.v1.BlockAccessListEntry.balance_changes:type_name -> xatu.eth.v1.BlockAccessListBalanceChange + 2, // 12: xatu.eth.v1.BlockAccessListEntry.nonce_changes:type_name -> xatu.eth.v1.BlockAccessListNonceChange + 3, // 13: xatu.eth.v1.BlockAccessListEntry.code_changes:type_name -> xatu.eth.v1.BlockAccessListCodeChange + 4, // 14: xatu.eth.v1.BlockAccessList.entries:type_name -> xatu.eth.v1.BlockAccessListEntry + 8, // 15: xatu.eth.v1.BlockAccessListChange.address:type_name -> google.protobuf.StringValue + 7, // 16: xatu.eth.v1.BlockAccessListChange.block_access_index:type_name -> google.protobuf.UInt32Value + 8, // 17: xatu.eth.v1.BlockAccessListChange.storage_key:type_name -> google.protobuf.StringValue + 8, // 18: xatu.eth.v1.BlockAccessListChange.new_value:type_name -> google.protobuf.StringValue + 19, // [19:19] is the sub-list for method output_type + 19, // [19:19] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name +} + +func init() { file_pkg_proto_eth_v1_block_access_list_proto_init() } +func file_pkg_proto_eth_v1_block_access_list_proto_init() { + if File_pkg_proto_eth_v1_block_access_list_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[0].Exporter = func(v any, i int) any { + switch v := v.(*BlockAccessListStorageChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[1].Exporter = func(v any, i int) any { + switch v := v.(*BlockAccessListBalanceChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[2].Exporter = func(v any, i int) any { + switch v := v.(*BlockAccessListNonceChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[3].Exporter = func(v any, i int) any { + switch v := v.(*BlockAccessListCodeChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[4].Exporter = func(v any, i int) any { + switch v := v.(*BlockAccessListEntry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[5].Exporter = func(v any, i int) any { + switch v := v.(*BlockAccessList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[6].Exporter = func(v any, i int) any { + switch v := v.(*BlockAccessListChange); 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_pkg_proto_eth_v1_block_access_list_proto_rawDesc, + NumEnums: 0, + NumMessages: 7, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pkg_proto_eth_v1_block_access_list_proto_goTypes, + DependencyIndexes: file_pkg_proto_eth_v1_block_access_list_proto_depIdxs, + MessageInfos: file_pkg_proto_eth_v1_block_access_list_proto_msgTypes, + }.Build() + File_pkg_proto_eth_v1_block_access_list_proto = out.File + file_pkg_proto_eth_v1_block_access_list_proto_rawDesc = nil + file_pkg_proto_eth_v1_block_access_list_proto_goTypes = nil + file_pkg_proto_eth_v1_block_access_list_proto_depIdxs = nil +} diff --git a/pkg/proto/eth/v1/block_access_list.proto b/pkg/proto/eth/v1/block_access_list.proto new file mode 100644 index 000000000..0eb526d0e --- /dev/null +++ b/pkg/proto/eth/v1/block_access_list.proto @@ -0,0 +1,65 @@ +syntax = "proto3"; + +package xatu.eth.v1; + +option go_package = "github.com/ethpandaops/xatu/pkg/proto/eth/v1"; + +import "google/protobuf/descriptor.proto"; +import "google/protobuf/wrappers.proto"; + +message BlockAccessListStorageChange { + google.protobuf.UInt32Value block_access_index = 1 + [ json_name = "block_access_index" ]; + google.protobuf.StringValue key = 2; + google.protobuf.StringValue new_value = 3 [ json_name = "new_value" ]; +} + +message BlockAccessListBalanceChange { + google.protobuf.UInt32Value block_access_index = 1 + [ json_name = "block_access_index" ]; + google.protobuf.StringValue post_balance = 2 + [ json_name = "post_balance" ]; +} + +message BlockAccessListNonceChange { + google.protobuf.UInt32Value block_access_index = 1 + [ json_name = "block_access_index" ]; + google.protobuf.UInt64Value new_nonce = 2 [ json_name = "new_nonce" ]; +} + +message BlockAccessListCodeChange { + google.protobuf.UInt32Value block_access_index = 1 + [ json_name = "block_access_index" ]; + google.protobuf.StringValue new_code = 2 [ json_name = "new_code" ]; +} + +message BlockAccessListEntry { + google.protobuf.StringValue address = 1; + repeated BlockAccessListStorageChange storage_changes = 2 + [ json_name = "storage_changes" ]; + repeated BlockAccessListBalanceChange balance_changes = 3 + [ json_name = "balance_changes" ]; + repeated BlockAccessListNonceChange nonce_changes = 4 + [ json_name = "nonce_changes" ]; + repeated BlockAccessListCodeChange code_changes = 5 + [ json_name = "code_changes" ]; +} + +message BlockAccessList { + repeated BlockAccessListEntry entries = 1; +} + +// BlockAccessListChange is a denormalized representation of a single change +// within a block access list. Used for ClickHouse storage where each change +// becomes one row. +message BlockAccessListChange { + google.protobuf.StringValue address = 1; + // change_type is one of: "storage", "balance", "nonce", "code" + string change_type = 2 [ json_name = "change_type" ]; + google.protobuf.UInt32Value block_access_index = 3 + [ json_name = "block_access_index" ]; + // storage_key is set only for storage changes + google.protobuf.StringValue storage_key = 4 [ json_name = "storage_key" ]; + // new_value contains the new value for any change type + google.protobuf.StringValue new_value = 5 [ json_name = "new_value" ]; +} diff --git a/pkg/proto/eth/v1/execution_engine.pb.go b/pkg/proto/eth/v1/execution_engine.pb.go index 6033060f9..3070ca872 100644 --- a/pkg/proto/eth/v1/execution_engine.pb.go +++ b/pkg/proto/eth/v1/execution_engine.pb.go @@ -1472,6 +1472,199 @@ func (x *ExecutionPayloadFulu) GetExcessBlobGas() *wrapperspb.UInt64Value { return nil } +type ExecutionPayloadGloas struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ParentHash string `protobuf:"bytes,1,opt,name=parent_hash,proto3" json:"parent_hash,omitempty"` + FeeRecipient string `protobuf:"bytes,2,opt,name=fee_recipient,proto3" json:"fee_recipient,omitempty"` + StateRoot string `protobuf:"bytes,3,opt,name=state_root,proto3" json:"state_root,omitempty"` + ReceiptsRoot string `protobuf:"bytes,4,opt,name=receipts_root,proto3" json:"receipts_root,omitempty"` + LogsBloom string `protobuf:"bytes,5,opt,name=logs_bloom,proto3" json:"logs_bloom,omitempty"` + PrevRandao string `protobuf:"bytes,6,opt,name=prev_randao,proto3" json:"prev_randao,omitempty"` + BlockNumber *wrapperspb.UInt64Value `protobuf:"bytes,7,opt,name=block_number,proto3" json:"block_number,omitempty"` + GasLimit *wrapperspb.UInt64Value `protobuf:"bytes,8,opt,name=gas_limit,proto3" json:"gas_limit,omitempty"` + GasUsed *wrapperspb.UInt64Value `protobuf:"bytes,9,opt,name=gas_used,proto3" json:"gas_used,omitempty"` + Timestamp *wrapperspb.UInt64Value `protobuf:"bytes,10,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + ExtraData string `protobuf:"bytes,11,opt,name=extra_data,proto3" json:"extra_data,omitempty"` + BaseFeePerGas string `protobuf:"bytes,12,opt,name=base_fee_per_gas,proto3" json:"base_fee_per_gas,omitempty"` + BlockHash string `protobuf:"bytes,13,opt,name=block_hash,proto3" json:"block_hash,omitempty"` + Transactions []string `protobuf:"bytes,14,rep,name=transactions,proto3" json:"transactions,omitempty"` + Withdrawals []*WithdrawalV2 `protobuf:"bytes,15,rep,name=withdrawals,proto3" json:"withdrawals,omitempty"` + BlobGasUsed *wrapperspb.UInt64Value `protobuf:"bytes,16,opt,name=blob_gas_used,proto3" json:"blob_gas_used,omitempty"` + ExcessBlobGas *wrapperspb.UInt64Value `protobuf:"bytes,17,opt,name=excess_blob_gas,proto3" json:"excess_blob_gas,omitempty"` + // EIP-7928: Block-level access list + BlockAccessList *BlockAccessList `protobuf:"bytes,18,opt,name=block_access_list,proto3" json:"block_access_list,omitempty"` + // Slot number in execution payload + SlotNumber *wrapperspb.UInt64Value `protobuf:"bytes,19,opt,name=slot_number,proto3" json:"slot_number,omitempty"` +} + +func (x *ExecutionPayloadGloas) Reset() { + *x = ExecutionPayloadGloas{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutionPayloadGloas) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutionPayloadGloas) ProtoMessage() {} + +func (x *ExecutionPayloadGloas) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_execution_engine_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 ExecutionPayloadGloas.ProtoReflect.Descriptor instead. +func (*ExecutionPayloadGloas) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_execution_engine_proto_rawDescGZIP(), []int{9} +} + +func (x *ExecutionPayloadGloas) GetParentHash() string { + if x != nil { + return x.ParentHash + } + return "" +} + +func (x *ExecutionPayloadGloas) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + +func (x *ExecutionPayloadGloas) GetStateRoot() string { + if x != nil { + return x.StateRoot + } + return "" +} + +func (x *ExecutionPayloadGloas) GetReceiptsRoot() string { + if x != nil { + return x.ReceiptsRoot + } + return "" +} + +func (x *ExecutionPayloadGloas) GetLogsBloom() string { + if x != nil { + return x.LogsBloom + } + return "" +} + +func (x *ExecutionPayloadGloas) GetPrevRandao() string { + if x != nil { + return x.PrevRandao + } + return "" +} + +func (x *ExecutionPayloadGloas) GetBlockNumber() *wrapperspb.UInt64Value { + if x != nil { + return x.BlockNumber + } + return nil +} + +func (x *ExecutionPayloadGloas) GetGasLimit() *wrapperspb.UInt64Value { + if x != nil { + return x.GasLimit + } + return nil +} + +func (x *ExecutionPayloadGloas) GetGasUsed() *wrapperspb.UInt64Value { + if x != nil { + return x.GasUsed + } + return nil +} + +func (x *ExecutionPayloadGloas) GetTimestamp() *wrapperspb.UInt64Value { + if x != nil { + return x.Timestamp + } + return nil +} + +func (x *ExecutionPayloadGloas) GetExtraData() string { + if x != nil { + return x.ExtraData + } + return "" +} + +func (x *ExecutionPayloadGloas) GetBaseFeePerGas() string { + if x != nil { + return x.BaseFeePerGas + } + return "" +} + +func (x *ExecutionPayloadGloas) GetBlockHash() string { + if x != nil { + return x.BlockHash + } + return "" +} + +func (x *ExecutionPayloadGloas) GetTransactions() []string { + if x != nil { + return x.Transactions + } + return nil +} + +func (x *ExecutionPayloadGloas) GetWithdrawals() []*WithdrawalV2 { + if x != nil { + return x.Withdrawals + } + return nil +} + +func (x *ExecutionPayloadGloas) GetBlobGasUsed() *wrapperspb.UInt64Value { + if x != nil { + return x.BlobGasUsed + } + return nil +} + +func (x *ExecutionPayloadGloas) GetExcessBlobGas() *wrapperspb.UInt64Value { + if x != nil { + return x.ExcessBlobGas + } + return nil +} + +func (x *ExecutionPayloadGloas) GetBlockAccessList() *BlockAccessList { + if x != nil { + return x.BlockAccessList + } + return nil +} + +func (x *ExecutionPayloadGloas) GetSlotNumber() *wrapperspb.UInt64Value { + if x != nil { + return x.SlotNumber + } + return nil +} + type Withdrawal struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1486,7 +1679,7 @@ type Withdrawal struct { func (x *Withdrawal) Reset() { *x = Withdrawal{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[9] + mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1499,7 +1692,7 @@ func (x *Withdrawal) String() string { func (*Withdrawal) ProtoMessage() {} func (x *Withdrawal) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[9] + mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1512,7 +1705,7 @@ func (x *Withdrawal) ProtoReflect() protoreflect.Message { // Deprecated: Use Withdrawal.ProtoReflect.Descriptor instead. func (*Withdrawal) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v1_execution_engine_proto_rawDescGZIP(), []int{9} + return file_pkg_proto_eth_v1_execution_engine_proto_rawDescGZIP(), []int{10} } func (x *Withdrawal) GetIndex() uint64 { @@ -1557,7 +1750,7 @@ type WithdrawalV2 struct { func (x *WithdrawalV2) Reset() { *x = WithdrawalV2{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[10] + mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1570,7 +1763,7 @@ func (x *WithdrawalV2) String() string { func (*WithdrawalV2) ProtoMessage() {} func (x *WithdrawalV2) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[10] + mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1583,7 +1776,7 @@ func (x *WithdrawalV2) ProtoReflect() protoreflect.Message { // Deprecated: Use WithdrawalV2.ProtoReflect.Descriptor instead. func (*WithdrawalV2) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v1_execution_engine_proto_rawDescGZIP(), []int{10} + return file_pkg_proto_eth_v1_execution_engine_proto_rawDescGZIP(), []int{11} } func (x *WithdrawalV2) GetIndex() *wrapperspb.UInt64Value { @@ -1639,7 +1832,7 @@ type ExecutionPayloadHeaderCapella struct { func (x *ExecutionPayloadHeaderCapella) Reset() { *x = ExecutionPayloadHeaderCapella{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[11] + mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1652,7 +1845,7 @@ func (x *ExecutionPayloadHeaderCapella) String() string { func (*ExecutionPayloadHeaderCapella) ProtoMessage() {} func (x *ExecutionPayloadHeaderCapella) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[11] + mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1665,7 +1858,7 @@ func (x *ExecutionPayloadHeaderCapella) ProtoReflect() protoreflect.Message { // Deprecated: Use ExecutionPayloadHeaderCapella.ProtoReflect.Descriptor instead. func (*ExecutionPayloadHeaderCapella) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v1_execution_engine_proto_rawDescGZIP(), []int{11} + return file_pkg_proto_eth_v1_execution_engine_proto_rawDescGZIP(), []int{12} } func (x *ExecutionPayloadHeaderCapella) GetParentHash() string { @@ -1798,7 +1991,7 @@ type ExecutionPayloadHeaderCapellaV2 struct { func (x *ExecutionPayloadHeaderCapellaV2) Reset() { *x = ExecutionPayloadHeaderCapellaV2{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[12] + mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1811,7 +2004,7 @@ func (x *ExecutionPayloadHeaderCapellaV2) String() string { func (*ExecutionPayloadHeaderCapellaV2) ProtoMessage() {} func (x *ExecutionPayloadHeaderCapellaV2) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[12] + mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1824,7 +2017,7 @@ func (x *ExecutionPayloadHeaderCapellaV2) ProtoReflect() protoreflect.Message { // Deprecated: Use ExecutionPayloadHeaderCapellaV2.ProtoReflect.Descriptor instead. func (*ExecutionPayloadHeaderCapellaV2) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v1_execution_engine_proto_rawDescGZIP(), []int{12} + return file_pkg_proto_eth_v1_execution_engine_proto_rawDescGZIP(), []int{13} } func (x *ExecutionPayloadHeaderCapellaV2) GetParentHash() string { @@ -1957,7 +2150,7 @@ type Transaction struct { func (x *Transaction) Reset() { *x = Transaction{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[13] + mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1970,7 +2163,7 @@ func (x *Transaction) String() string { func (*Transaction) ProtoMessage() {} func (x *Transaction) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[13] + mi := &file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1983,7 +2176,7 @@ func (x *Transaction) ProtoReflect() protoreflect.Message { // Deprecated: Use Transaction.ProtoReflect.Descriptor instead. func (*Transaction) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v1_execution_engine_proto_rawDescGZIP(), []int{13} + return file_pkg_proto_eth_v1_execution_engine_proto_rawDescGZIP(), []int{14} } func (x *Transaction) GetChainId() string { @@ -2101,213 +2294,101 @@ var file_pkg_proto_eth_v1_execution_engine_proto_rawDesc = []byte{ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xee, 0x03, 0x0a, 0x10, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, - 0x24, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, - 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, - 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, - 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, - 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x70, - 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x12, 0x22, 0x0a, - 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, - 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, - 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x61, 0x73, - 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, - 0x72, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe8, 0x04, 0x0a, 0x12, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x56, 0x32, - 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, - 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, - 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, - 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x20, - 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, - 0x12, 0x40, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x38, - 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0xee, 0x03, 0x0a, 0x10, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x65, 0x65, + 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, + 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, + 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, + 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, + 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, + 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, + 0x6e, 0x64, 0x61, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x76, + 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x67, + 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x73, + 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x67, 0x61, 0x73, + 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, + 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, + 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x12, + 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, + 0x22, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x22, 0xe8, 0x04, 0x0a, 0x12, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x56, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, + 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, + 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, + 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x73, + 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, + 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, + 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, + 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x12, 0x40, 0x0a, 0x0c, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, - 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, - 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, - 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, - 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xfe, 0x03, 0x0a, 0x16, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, - 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, - 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, - 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x20, 0x0a, - 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x12, - 0x22, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x65, - 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x10, 0x62, - 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, - 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x22, 0xf8, 0x04, 0x0a, 0x18, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x56, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, - 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x65, - 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, - 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, - 0x61, 0x6f, 0x12, 0x40, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, - 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, - 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, - 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x22, 0xb0, 0x04, 0x0a, 0x17, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x12, 0x20, 0x0a, 0x0b, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x24, - 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, - 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, - 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, - 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, - 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, - 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, - 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x12, 0x22, 0x0a, 0x0c, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, - 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, - 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, - 0x5f, 0x67, 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x61, 0x6c, 0x73, 0x22, 0xac, 0x05, 0x0a, 0x19, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, - 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, - 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x5f, - 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, - 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, - 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, - 0x6f, 0x12, 0x40, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x09, + 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x67, + 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, + 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, + 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, + 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2a, + 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, + 0x61, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, + 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xfe, + 0x03, 0x0a, 0x16, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x66, + 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, + 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, + 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, + 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, + 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, + 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, + 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, + 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, + 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x67, + 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x67, + 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, @@ -2315,14 +2396,11 @@ var file_pkg_proto_eth_v1_execution_engine_proto_rawDesc = []byte{ 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x61, 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x61, 0x6c, 0x56, 0x32, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, - 0x6c, 0x73, 0x22, 0xb4, 0x06, 0x0a, 0x15, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6e, 0x65, 0x62, 0x12, 0x20, 0x0a, 0x0b, + 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x22, + 0xf8, 0x04, 0x0a, 0x18, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, @@ -2357,24 +2435,193 @@ var file_pkg_proto_eth_v1_execution_engine_proto_rawDesc = []byte{ 0x5f, 0x67, 0x61, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x3b, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x18, - 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x56, 0x32, - 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x12, 0x42, 0x0a, - 0x0d, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x10, + 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x2c, 0x0a, 0x11, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x6f, 0x6f, + 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x22, 0xb0, 0x04, 0x0a, 0x17, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, + 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, + 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x24, + 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, + 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, + 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, + 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, + 0x64, 0x61, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, + 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, + 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, + 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, + 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, + 0x75, 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, + 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, + 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x1e, + 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x22, + 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, + 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, + 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x22, 0xac, 0x05, + 0x0a, 0x19, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, + 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, + 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, + 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, + 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, + 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x65, + 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x12, 0x40, 0x0a, 0x0c, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, + 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, + 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, + 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, + 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, + 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x2a, 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, + 0x67, 0x61, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, + 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x3b, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x18, 0x0f, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x56, 0x32, 0x52, + 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x22, 0xb4, 0x06, 0x0a, + 0x15, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x44, 0x65, 0x6e, 0x65, 0x62, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, + 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x24, + 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, + 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, + 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, + 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, + 0x64, 0x61, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, + 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x12, 0x40, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x3a, + 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x61, + 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, + 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x77, 0x69, + 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, + 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x56, 0x32, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x62, 0x6c, 0x6f, 0x62, 0x5f, + 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x62, 0x6c, + 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x46, 0x0a, 0x0f, 0x65, + 0x78, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x0d, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, - 0x64, 0x12, 0x46, 0x0a, 0x0f, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x62, - 0x5f, 0x67, 0x61, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x75, 0x65, 0x52, 0x0f, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, + 0x67, 0x61, 0x73, 0x22, 0xb6, 0x06, 0x0a, 0x17, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x12, + 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, + 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, + 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x20, 0x0a, + 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x12, + 0x40, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x3a, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x38, 0x0a, + 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x67, + 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, - 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, - 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x22, 0xb6, 0x06, 0x0a, 0x17, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6c, - 0x65, 0x63, 0x74, 0x72, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, + 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, + 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x12, + 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, + 0x22, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, + 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, + 0x6c, 0x56, 0x32, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, + 0x12, 0x42, 0x0a, 0x0d, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, + 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, + 0x75, 0x73, 0x65, 0x64, 0x12, 0x46, 0x0a, 0x0f, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x62, + 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x65, 0x78, 0x63, + 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x22, 0xb3, 0x06, 0x0a, + 0x14, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x46, 0x75, 0x6c, 0x75, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, @@ -2424,194 +2671,203 @@ var file_pkg_proto_eth_v1_execution_engine_proto_rawDesc = []byte{ 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, - 0x61, 0x73, 0x22, 0xb3, 0x06, 0x0a, 0x14, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x75, 0x6c, 0x75, 0x12, 0x20, 0x0a, 0x0b, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, - 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, - 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, - 0x6f, 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, - 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, - 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, - 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x65, - 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x12, 0x40, 0x0a, 0x0c, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x61, 0x73, 0x22, 0xc0, 0x07, 0x0a, 0x15, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x47, 0x6c, 0x6f, 0x61, 0x73, 0x12, 0x20, 0x0a, 0x0b, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x24, + 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, + 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, + 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, + 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, + 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, + 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, + 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x12, 0x40, 0x0a, 0x0c, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, + 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, - 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, - 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, - 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, - 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x2a, 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, - 0x67, 0x61, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, - 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x3b, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x18, 0x0f, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x56, 0x32, 0x52, - 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x0d, - 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x10, 0x20, + 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, + 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, + 0x75, 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, + 0x5f, 0x67, 0x61, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x73, 0x65, + 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x0a, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x3b, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x18, + 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x56, 0x32, + 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x12, 0x42, 0x0a, + 0x0d, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0d, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, + 0x64, 0x12, 0x46, 0x0a, 0x0f, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x62, + 0x5f, 0x67, 0x61, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, + 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x4a, 0x0a, 0x11, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x11, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x7e, 0x0a, 0x0a, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x0c, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x61, 0x6c, 0x56, 0x32, 0x12, 0x32, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x46, 0x0a, 0x0f, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0d, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, - 0x12, 0x46, 0x0a, 0x0f, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, - 0x67, 0x61, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x5f, - 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x22, 0x7e, 0x0a, 0x0a, 0x57, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x28, 0x0a, 0x0f, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x0c, 0x57, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x56, 0x32, 0x12, 0x32, 0x0a, 0x05, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x46, 0x0a, - 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x34, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0xb1, 0x04, 0x0a, 0x1d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x61, 0x70, + 0x65, 0x6c, 0x6c, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, + 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, + 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x0d, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, + 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, + 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, + 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, + 0x6e, 0x64, 0x61, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x61, 0x73, + 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, + 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, + 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, + 0x5f, 0x67, 0x61, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x73, 0x65, + 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x0a, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x2c, 0x0a, 0x11, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x6f, 0x6f, + 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x77, 0x69, + 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, + 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x22, 0xab, 0x05, 0x0a, 0x1f, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, + 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, + 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, + 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x73, + 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, + 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, + 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, + 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x12, 0x40, 0x0a, 0x0c, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x09, + 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb1, 0x04, 0x0a, 0x1d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x65, 0x65, - 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, - 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, - 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, - 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, - 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, - 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, - 0x6e, 0x64, 0x61, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x76, - 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x67, - 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x73, - 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x67, 0x61, 0x73, - 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, - 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, - 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x12, - 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, - 0x2c, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x2a, 0x0a, - 0x10, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x5f, 0x72, 0x6f, 0x6f, - 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x61, 0x6c, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x22, 0xab, 0x05, 0x0a, 0x1f, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x12, 0x20, 0x0a, - 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, - 0x24, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, - 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, - 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, - 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, - 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x70, - 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x12, 0x40, 0x0a, - 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x67, + 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, + 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, + 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, + 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2a, + 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, + 0x61, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, + 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x77, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x10, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x5f, + 0x72, 0x6f, 0x6f, 0x74, 0x22, 0x8d, 0x04, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x2e, 0x0a, 0x03, 0x67, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x3a, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x67, - 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x67, 0x61, 0x73, - 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, - 0x72, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x73, - 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x1e, 0x0a, - 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x2c, 0x0a, - 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x6f, - 0x6f, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x77, - 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, - 0x6c, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x22, 0x8d, 0x04, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x5f, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x2e, 0x0a, 0x03, 0x67, 0x61, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x67, 0x61, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x73, - 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, - 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x66, - 0x72, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, - 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, - 0x32, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x65, 0x52, 0x03, 0x67, 0x61, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, + 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x32, 0x0a, 0x05, + 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, + 0x74, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, + 0x61, 0x73, 0x5f, 0x74, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x61, + 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x12, 0x38, 0x0a, 0x08, + 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6e, 0x6f, - 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x67, - 0x61, 0x73, 0x5f, 0x74, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x70, 0x12, 0x20, 0x0a, - 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x12, - 0x38, 0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x08, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x6c, 0x6f, - 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, - 0x65, 0x5f, 0x63, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x62, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, - 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x62, 0x6c, + 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, + 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, + 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, + 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x65, 0x73, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, 0x2f, 0x78, + 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, + 0x68, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2626,7 +2882,7 @@ func file_pkg_proto_eth_v1_execution_engine_proto_rawDescGZIP() []byte { return file_pkg_proto_eth_v1_execution_engine_proto_rawDescData } -var file_pkg_proto_eth_v1_execution_engine_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_pkg_proto_eth_v1_execution_engine_proto_msgTypes = make([]protoimpl.MessageInfo, 15) var file_pkg_proto_eth_v1_execution_engine_proto_goTypes = []any{ (*ExecutionPayload)(nil), // 0: xatu.eth.v1.ExecutionPayload (*ExecutionPayloadV2)(nil), // 1: xatu.eth.v1.ExecutionPayloadV2 @@ -2637,66 +2893,77 @@ var file_pkg_proto_eth_v1_execution_engine_proto_goTypes = []any{ (*ExecutionPayloadDeneb)(nil), // 6: xatu.eth.v1.ExecutionPayloadDeneb (*ExecutionPayloadElectra)(nil), // 7: xatu.eth.v1.ExecutionPayloadElectra (*ExecutionPayloadFulu)(nil), // 8: xatu.eth.v1.ExecutionPayloadFulu - (*Withdrawal)(nil), // 9: xatu.eth.v1.Withdrawal - (*WithdrawalV2)(nil), // 10: xatu.eth.v1.WithdrawalV2 - (*ExecutionPayloadHeaderCapella)(nil), // 11: xatu.eth.v1.ExecutionPayloadHeaderCapella - (*ExecutionPayloadHeaderCapellaV2)(nil), // 12: xatu.eth.v1.ExecutionPayloadHeaderCapellaV2 - (*Transaction)(nil), // 13: xatu.eth.v1.Transaction - (*wrapperspb.UInt64Value)(nil), // 14: google.protobuf.UInt64Value - (*wrapperspb.UInt32Value)(nil), // 15: google.protobuf.UInt32Value + (*ExecutionPayloadGloas)(nil), // 9: xatu.eth.v1.ExecutionPayloadGloas + (*Withdrawal)(nil), // 10: xatu.eth.v1.Withdrawal + (*WithdrawalV2)(nil), // 11: xatu.eth.v1.WithdrawalV2 + (*ExecutionPayloadHeaderCapella)(nil), // 12: xatu.eth.v1.ExecutionPayloadHeaderCapella + (*ExecutionPayloadHeaderCapellaV2)(nil), // 13: xatu.eth.v1.ExecutionPayloadHeaderCapellaV2 + (*Transaction)(nil), // 14: xatu.eth.v1.Transaction + (*wrapperspb.UInt64Value)(nil), // 15: google.protobuf.UInt64Value + (*BlockAccessList)(nil), // 16: xatu.eth.v1.BlockAccessList + (*wrapperspb.UInt32Value)(nil), // 17: google.protobuf.UInt32Value } var file_pkg_proto_eth_v1_execution_engine_proto_depIdxs = []int32{ - 14, // 0: xatu.eth.v1.ExecutionPayloadV2.block_number:type_name -> google.protobuf.UInt64Value - 14, // 1: xatu.eth.v1.ExecutionPayloadV2.gas_limit:type_name -> google.protobuf.UInt64Value - 14, // 2: xatu.eth.v1.ExecutionPayloadV2.gas_used:type_name -> google.protobuf.UInt64Value - 14, // 3: xatu.eth.v1.ExecutionPayloadV2.timestamp:type_name -> google.protobuf.UInt64Value - 14, // 4: xatu.eth.v1.ExecutionPayloadHeaderV2.block_number:type_name -> google.protobuf.UInt64Value - 14, // 5: xatu.eth.v1.ExecutionPayloadHeaderV2.gas_limit:type_name -> google.protobuf.UInt64Value - 14, // 6: xatu.eth.v1.ExecutionPayloadHeaderV2.gas_used:type_name -> google.protobuf.UInt64Value - 14, // 7: xatu.eth.v1.ExecutionPayloadHeaderV2.timestamp:type_name -> google.protobuf.UInt64Value - 9, // 8: xatu.eth.v1.ExecutionPayloadCapella.withdrawals:type_name -> xatu.eth.v1.Withdrawal - 14, // 9: xatu.eth.v1.ExecutionPayloadCapellaV2.block_number:type_name -> google.protobuf.UInt64Value - 14, // 10: xatu.eth.v1.ExecutionPayloadCapellaV2.gas_limit:type_name -> google.protobuf.UInt64Value - 14, // 11: xatu.eth.v1.ExecutionPayloadCapellaV2.gas_used:type_name -> google.protobuf.UInt64Value - 14, // 12: xatu.eth.v1.ExecutionPayloadCapellaV2.timestamp:type_name -> google.protobuf.UInt64Value - 10, // 13: xatu.eth.v1.ExecutionPayloadCapellaV2.withdrawals:type_name -> xatu.eth.v1.WithdrawalV2 - 14, // 14: xatu.eth.v1.ExecutionPayloadDeneb.block_number:type_name -> google.protobuf.UInt64Value - 14, // 15: xatu.eth.v1.ExecutionPayloadDeneb.gas_limit:type_name -> google.protobuf.UInt64Value - 14, // 16: xatu.eth.v1.ExecutionPayloadDeneb.gas_used:type_name -> google.protobuf.UInt64Value - 14, // 17: xatu.eth.v1.ExecutionPayloadDeneb.timestamp:type_name -> google.protobuf.UInt64Value - 10, // 18: xatu.eth.v1.ExecutionPayloadDeneb.withdrawals:type_name -> xatu.eth.v1.WithdrawalV2 - 14, // 19: xatu.eth.v1.ExecutionPayloadDeneb.blob_gas_used:type_name -> google.protobuf.UInt64Value - 14, // 20: xatu.eth.v1.ExecutionPayloadDeneb.excess_blob_gas:type_name -> google.protobuf.UInt64Value - 14, // 21: xatu.eth.v1.ExecutionPayloadElectra.block_number:type_name -> google.protobuf.UInt64Value - 14, // 22: xatu.eth.v1.ExecutionPayloadElectra.gas_limit:type_name -> google.protobuf.UInt64Value - 14, // 23: xatu.eth.v1.ExecutionPayloadElectra.gas_used:type_name -> google.protobuf.UInt64Value - 14, // 24: xatu.eth.v1.ExecutionPayloadElectra.timestamp:type_name -> google.protobuf.UInt64Value - 10, // 25: xatu.eth.v1.ExecutionPayloadElectra.withdrawals:type_name -> xatu.eth.v1.WithdrawalV2 - 14, // 26: xatu.eth.v1.ExecutionPayloadElectra.blob_gas_used:type_name -> google.protobuf.UInt64Value - 14, // 27: xatu.eth.v1.ExecutionPayloadElectra.excess_blob_gas:type_name -> google.protobuf.UInt64Value - 14, // 28: xatu.eth.v1.ExecutionPayloadFulu.block_number:type_name -> google.protobuf.UInt64Value - 14, // 29: xatu.eth.v1.ExecutionPayloadFulu.gas_limit:type_name -> google.protobuf.UInt64Value - 14, // 30: xatu.eth.v1.ExecutionPayloadFulu.gas_used:type_name -> google.protobuf.UInt64Value - 14, // 31: xatu.eth.v1.ExecutionPayloadFulu.timestamp:type_name -> google.protobuf.UInt64Value - 10, // 32: xatu.eth.v1.ExecutionPayloadFulu.withdrawals:type_name -> xatu.eth.v1.WithdrawalV2 - 14, // 33: xatu.eth.v1.ExecutionPayloadFulu.blob_gas_used:type_name -> google.protobuf.UInt64Value - 14, // 34: xatu.eth.v1.ExecutionPayloadFulu.excess_blob_gas:type_name -> google.protobuf.UInt64Value - 14, // 35: xatu.eth.v1.WithdrawalV2.index:type_name -> google.protobuf.UInt64Value - 14, // 36: xatu.eth.v1.WithdrawalV2.validator_index:type_name -> google.protobuf.UInt64Value - 14, // 37: xatu.eth.v1.WithdrawalV2.amount:type_name -> google.protobuf.UInt64Value - 14, // 38: xatu.eth.v1.ExecutionPayloadHeaderCapellaV2.block_number:type_name -> google.protobuf.UInt64Value - 14, // 39: xatu.eth.v1.ExecutionPayloadHeaderCapellaV2.gas_limit:type_name -> google.protobuf.UInt64Value - 14, // 40: xatu.eth.v1.ExecutionPayloadHeaderCapellaV2.gas_used:type_name -> google.protobuf.UInt64Value - 14, // 41: xatu.eth.v1.ExecutionPayloadHeaderCapellaV2.timestamp:type_name -> google.protobuf.UInt64Value - 14, // 42: xatu.eth.v1.Transaction.gas:type_name -> google.protobuf.UInt64Value - 14, // 43: xatu.eth.v1.Transaction.nonce:type_name -> google.protobuf.UInt64Value - 15, // 44: xatu.eth.v1.Transaction.type:type_name -> google.protobuf.UInt32Value - 14, // 45: xatu.eth.v1.Transaction.blob_gas:type_name -> google.protobuf.UInt64Value - 46, // [46:46] is the sub-list for method output_type - 46, // [46:46] is the sub-list for method input_type - 46, // [46:46] is the sub-list for extension type_name - 46, // [46:46] is the sub-list for extension extendee - 0, // [0:46] is the sub-list for field type_name + 15, // 0: xatu.eth.v1.ExecutionPayloadV2.block_number:type_name -> google.protobuf.UInt64Value + 15, // 1: xatu.eth.v1.ExecutionPayloadV2.gas_limit:type_name -> google.protobuf.UInt64Value + 15, // 2: xatu.eth.v1.ExecutionPayloadV2.gas_used:type_name -> google.protobuf.UInt64Value + 15, // 3: xatu.eth.v1.ExecutionPayloadV2.timestamp:type_name -> google.protobuf.UInt64Value + 15, // 4: xatu.eth.v1.ExecutionPayloadHeaderV2.block_number:type_name -> google.protobuf.UInt64Value + 15, // 5: xatu.eth.v1.ExecutionPayloadHeaderV2.gas_limit:type_name -> google.protobuf.UInt64Value + 15, // 6: xatu.eth.v1.ExecutionPayloadHeaderV2.gas_used:type_name -> google.protobuf.UInt64Value + 15, // 7: xatu.eth.v1.ExecutionPayloadHeaderV2.timestamp:type_name -> google.protobuf.UInt64Value + 10, // 8: xatu.eth.v1.ExecutionPayloadCapella.withdrawals:type_name -> xatu.eth.v1.Withdrawal + 15, // 9: xatu.eth.v1.ExecutionPayloadCapellaV2.block_number:type_name -> google.protobuf.UInt64Value + 15, // 10: xatu.eth.v1.ExecutionPayloadCapellaV2.gas_limit:type_name -> google.protobuf.UInt64Value + 15, // 11: xatu.eth.v1.ExecutionPayloadCapellaV2.gas_used:type_name -> google.protobuf.UInt64Value + 15, // 12: xatu.eth.v1.ExecutionPayloadCapellaV2.timestamp:type_name -> google.protobuf.UInt64Value + 11, // 13: xatu.eth.v1.ExecutionPayloadCapellaV2.withdrawals:type_name -> xatu.eth.v1.WithdrawalV2 + 15, // 14: xatu.eth.v1.ExecutionPayloadDeneb.block_number:type_name -> google.protobuf.UInt64Value + 15, // 15: xatu.eth.v1.ExecutionPayloadDeneb.gas_limit:type_name -> google.protobuf.UInt64Value + 15, // 16: xatu.eth.v1.ExecutionPayloadDeneb.gas_used:type_name -> google.protobuf.UInt64Value + 15, // 17: xatu.eth.v1.ExecutionPayloadDeneb.timestamp:type_name -> google.protobuf.UInt64Value + 11, // 18: xatu.eth.v1.ExecutionPayloadDeneb.withdrawals:type_name -> xatu.eth.v1.WithdrawalV2 + 15, // 19: xatu.eth.v1.ExecutionPayloadDeneb.blob_gas_used:type_name -> google.protobuf.UInt64Value + 15, // 20: xatu.eth.v1.ExecutionPayloadDeneb.excess_blob_gas:type_name -> google.protobuf.UInt64Value + 15, // 21: xatu.eth.v1.ExecutionPayloadElectra.block_number:type_name -> google.protobuf.UInt64Value + 15, // 22: xatu.eth.v1.ExecutionPayloadElectra.gas_limit:type_name -> google.protobuf.UInt64Value + 15, // 23: xatu.eth.v1.ExecutionPayloadElectra.gas_used:type_name -> google.protobuf.UInt64Value + 15, // 24: xatu.eth.v1.ExecutionPayloadElectra.timestamp:type_name -> google.protobuf.UInt64Value + 11, // 25: xatu.eth.v1.ExecutionPayloadElectra.withdrawals:type_name -> xatu.eth.v1.WithdrawalV2 + 15, // 26: xatu.eth.v1.ExecutionPayloadElectra.blob_gas_used:type_name -> google.protobuf.UInt64Value + 15, // 27: xatu.eth.v1.ExecutionPayloadElectra.excess_blob_gas:type_name -> google.protobuf.UInt64Value + 15, // 28: xatu.eth.v1.ExecutionPayloadFulu.block_number:type_name -> google.protobuf.UInt64Value + 15, // 29: xatu.eth.v1.ExecutionPayloadFulu.gas_limit:type_name -> google.protobuf.UInt64Value + 15, // 30: xatu.eth.v1.ExecutionPayloadFulu.gas_used:type_name -> google.protobuf.UInt64Value + 15, // 31: xatu.eth.v1.ExecutionPayloadFulu.timestamp:type_name -> google.protobuf.UInt64Value + 11, // 32: xatu.eth.v1.ExecutionPayloadFulu.withdrawals:type_name -> xatu.eth.v1.WithdrawalV2 + 15, // 33: xatu.eth.v1.ExecutionPayloadFulu.blob_gas_used:type_name -> google.protobuf.UInt64Value + 15, // 34: xatu.eth.v1.ExecutionPayloadFulu.excess_blob_gas:type_name -> google.protobuf.UInt64Value + 15, // 35: xatu.eth.v1.ExecutionPayloadGloas.block_number:type_name -> google.protobuf.UInt64Value + 15, // 36: xatu.eth.v1.ExecutionPayloadGloas.gas_limit:type_name -> google.protobuf.UInt64Value + 15, // 37: xatu.eth.v1.ExecutionPayloadGloas.gas_used:type_name -> google.protobuf.UInt64Value + 15, // 38: xatu.eth.v1.ExecutionPayloadGloas.timestamp:type_name -> google.protobuf.UInt64Value + 11, // 39: xatu.eth.v1.ExecutionPayloadGloas.withdrawals:type_name -> xatu.eth.v1.WithdrawalV2 + 15, // 40: xatu.eth.v1.ExecutionPayloadGloas.blob_gas_used:type_name -> google.protobuf.UInt64Value + 15, // 41: xatu.eth.v1.ExecutionPayloadGloas.excess_blob_gas:type_name -> google.protobuf.UInt64Value + 16, // 42: xatu.eth.v1.ExecutionPayloadGloas.block_access_list:type_name -> xatu.eth.v1.BlockAccessList + 15, // 43: xatu.eth.v1.ExecutionPayloadGloas.slot_number:type_name -> google.protobuf.UInt64Value + 15, // 44: xatu.eth.v1.WithdrawalV2.index:type_name -> google.protobuf.UInt64Value + 15, // 45: xatu.eth.v1.WithdrawalV2.validator_index:type_name -> google.protobuf.UInt64Value + 15, // 46: xatu.eth.v1.WithdrawalV2.amount:type_name -> google.protobuf.UInt64Value + 15, // 47: xatu.eth.v1.ExecutionPayloadHeaderCapellaV2.block_number:type_name -> google.protobuf.UInt64Value + 15, // 48: xatu.eth.v1.ExecutionPayloadHeaderCapellaV2.gas_limit:type_name -> google.protobuf.UInt64Value + 15, // 49: xatu.eth.v1.ExecutionPayloadHeaderCapellaV2.gas_used:type_name -> google.protobuf.UInt64Value + 15, // 50: xatu.eth.v1.ExecutionPayloadHeaderCapellaV2.timestamp:type_name -> google.protobuf.UInt64Value + 15, // 51: xatu.eth.v1.Transaction.gas:type_name -> google.protobuf.UInt64Value + 15, // 52: xatu.eth.v1.Transaction.nonce:type_name -> google.protobuf.UInt64Value + 17, // 53: xatu.eth.v1.Transaction.type:type_name -> google.protobuf.UInt32Value + 15, // 54: xatu.eth.v1.Transaction.blob_gas:type_name -> google.protobuf.UInt64Value + 55, // [55:55] is the sub-list for method output_type + 55, // [55:55] is the sub-list for method input_type + 55, // [55:55] is the sub-list for extension type_name + 55, // [55:55] is the sub-list for extension extendee + 0, // [0:55] is the sub-list for field type_name } func init() { file_pkg_proto_eth_v1_execution_engine_proto_init() } @@ -2704,6 +2971,7 @@ func file_pkg_proto_eth_v1_execution_engine_proto_init() { if File_pkg_proto_eth_v1_execution_engine_proto != nil { return } + file_pkg_proto_eth_v1_block_access_list_proto_init() if !protoimpl.UnsafeEnabled { file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*ExecutionPayload); i { @@ -2814,7 +3082,7 @@ func file_pkg_proto_eth_v1_execution_engine_proto_init() { } } file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*Withdrawal); i { + switch v := v.(*ExecutionPayloadGloas); i { case 0: return &v.state case 1: @@ -2826,7 +3094,7 @@ func file_pkg_proto_eth_v1_execution_engine_proto_init() { } } file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*WithdrawalV2); i { + switch v := v.(*Withdrawal); i { case 0: return &v.state case 1: @@ -2838,7 +3106,7 @@ func file_pkg_proto_eth_v1_execution_engine_proto_init() { } } file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[11].Exporter = func(v any, i int) any { - switch v := v.(*ExecutionPayloadHeaderCapella); i { + switch v := v.(*WithdrawalV2); i { case 0: return &v.state case 1: @@ -2850,7 +3118,7 @@ func file_pkg_proto_eth_v1_execution_engine_proto_init() { } } file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*ExecutionPayloadHeaderCapellaV2); i { + switch v := v.(*ExecutionPayloadHeaderCapella); i { case 0: return &v.state case 1: @@ -2862,6 +3130,18 @@ func file_pkg_proto_eth_v1_execution_engine_proto_init() { } } file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[13].Exporter = func(v any, i int) any { + switch v := v.(*ExecutionPayloadHeaderCapellaV2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_eth_v1_execution_engine_proto_msgTypes[14].Exporter = func(v any, i int) any { switch v := v.(*Transaction); i { case 0: return &v.state @@ -2880,7 +3160,7 @@ func file_pkg_proto_eth_v1_execution_engine_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pkg_proto_eth_v1_execution_engine_proto_rawDesc, NumEnums: 0, - NumMessages: 14, + NumMessages: 15, NumExtensions: 0, NumServices: 0, }, diff --git a/pkg/proto/eth/v1/execution_engine.proto b/pkg/proto/eth/v1/execution_engine.proto index fc0b9848c..e72b95cbe 100644 --- a/pkg/proto/eth/v1/execution_engine.proto +++ b/pkg/proto/eth/v1/execution_engine.proto @@ -9,6 +9,7 @@ option go_package = "github.com/ethpandaops/xatu/pkg/proto/eth/v1"; import "google/protobuf/descriptor.proto"; import "google/protobuf/wrappers.proto"; +import "pkg/proto/eth/v1/block_access_list.proto"; message ExecutionPayload { string parent_hash = 1 [ json_name = "parent_hash" ]; @@ -181,6 +182,35 @@ message ExecutionPayloadFulu { // TODO(fulu): Is there anything else to add for Fulu? } +message ExecutionPayloadGloas { + string parent_hash = 1 [ json_name = "parent_hash" ]; + string fee_recipient = 2 [ json_name = "fee_recipient" ]; + string state_root = 3 [ json_name = "state_root" ]; + string receipts_root = 4 [ json_name = "receipts_root" ]; + string logs_bloom = 5 [ json_name = "logs_bloom" ]; + string prev_randao = 6 [ json_name = "prev_randao" ]; + google.protobuf.UInt64Value block_number = 7 [ json_name = "block_number" ]; + google.protobuf.UInt64Value gas_limit = 8 [ json_name = "gas_limit" ]; + google.protobuf.UInt64Value gas_used = 9 [ json_name = "gas_used" ]; + google.protobuf.UInt64Value timestamp = 10; + string extra_data = 11 [ json_name = "extra_data" ]; + string base_fee_per_gas = 12 [ json_name = "base_fee_per_gas" ]; + string block_hash = 13 [ json_name = "block_hash" ]; + repeated string transactions = 14; + repeated WithdrawalV2 withdrawals = 15; + google.protobuf.UInt64Value blob_gas_used = 16 + [ json_name = "blob_gas_used" ]; + google.protobuf.UInt64Value excess_blob_gas = 17 + [ json_name = "excess_blob_gas" ]; + + // EIP-7928: Block-level access list + BlockAccessList block_access_list = 18 + [ json_name = "block_access_list" ]; + // Slot number in execution payload + google.protobuf.UInt64Value slot_number = 19 + [ json_name = "slot_number" ]; +} + message Withdrawal { uint64 index = 1; diff --git a/pkg/proto/eth/v2/beacon_block.pb.go b/pkg/proto/eth/v2/beacon_block.pb.go index fc8a3f90a..92210b79e 100644 --- a/pkg/proto/eth/v2/beacon_block.pb.go +++ b/pkg/proto/eth/v2/beacon_block.pb.go @@ -411,6 +411,61 @@ func (x *SignedBeaconBlockFulu) GetSignature() string { return "" } +type SignedBeaconBlockGloas struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message *BeaconBlockGloas `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + Signature string `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` +} + +func (x *SignedBeaconBlockGloas) Reset() { + *x = SignedBeaconBlockGloas{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignedBeaconBlockGloas) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignedBeaconBlockGloas) ProtoMessage() {} + +func (x *SignedBeaconBlockGloas) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v2_beacon_block_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 SignedBeaconBlockGloas.ProtoReflect.Descriptor instead. +func (*SignedBeaconBlockGloas) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{7} +} + +func (x *SignedBeaconBlockGloas) GetMessage() *BeaconBlockGloas { + if x != nil { + return x.Message + } + return nil +} + +func (x *SignedBeaconBlockGloas) GetSignature() string { + if x != nil { + return x.Signature + } + return "" +} + type SignedBlindedBeaconBlockBellatrix struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -423,7 +478,7 @@ type SignedBlindedBeaconBlockBellatrix struct { func (x *SignedBlindedBeaconBlockBellatrix) Reset() { *x = SignedBlindedBeaconBlockBellatrix{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[7] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -436,7 +491,7 @@ func (x *SignedBlindedBeaconBlockBellatrix) String() string { func (*SignedBlindedBeaconBlockBellatrix) ProtoMessage() {} func (x *SignedBlindedBeaconBlockBellatrix) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[7] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -449,7 +504,7 @@ func (x *SignedBlindedBeaconBlockBellatrix) ProtoReflect() protoreflect.Message // Deprecated: Use SignedBlindedBeaconBlockBellatrix.ProtoReflect.Descriptor instead. func (*SignedBlindedBeaconBlockBellatrix) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{7} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{8} } func (x *SignedBlindedBeaconBlockBellatrix) GetMessage() *BlindedBeaconBlockBellatrix { @@ -478,7 +533,7 @@ type SignedBlindedBeaconBlockBellatrixV2 struct { func (x *SignedBlindedBeaconBlockBellatrixV2) Reset() { *x = SignedBlindedBeaconBlockBellatrixV2{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[8] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -491,7 +546,7 @@ func (x *SignedBlindedBeaconBlockBellatrixV2) String() string { func (*SignedBlindedBeaconBlockBellatrixV2) ProtoMessage() {} func (x *SignedBlindedBeaconBlockBellatrixV2) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[8] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -504,7 +559,7 @@ func (x *SignedBlindedBeaconBlockBellatrixV2) ProtoReflect() protoreflect.Messag // Deprecated: Use SignedBlindedBeaconBlockBellatrixV2.ProtoReflect.Descriptor instead. func (*SignedBlindedBeaconBlockBellatrixV2) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{8} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{9} } func (x *SignedBlindedBeaconBlockBellatrixV2) GetMessage() *BlindedBeaconBlockBellatrixV2 { @@ -533,7 +588,7 @@ type SignedBlindedBeaconBlockCapella struct { func (x *SignedBlindedBeaconBlockCapella) Reset() { *x = SignedBlindedBeaconBlockCapella{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[9] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -546,7 +601,7 @@ func (x *SignedBlindedBeaconBlockCapella) String() string { func (*SignedBlindedBeaconBlockCapella) ProtoMessage() {} func (x *SignedBlindedBeaconBlockCapella) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[9] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -559,7 +614,7 @@ func (x *SignedBlindedBeaconBlockCapella) ProtoReflect() protoreflect.Message { // Deprecated: Use SignedBlindedBeaconBlockCapella.ProtoReflect.Descriptor instead. func (*SignedBlindedBeaconBlockCapella) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{9} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{10} } func (x *SignedBlindedBeaconBlockCapella) GetMessage() *BlindedBeaconBlockCapella { @@ -588,7 +643,7 @@ type SignedBlindedBeaconBlockCapellaV2 struct { func (x *SignedBlindedBeaconBlockCapellaV2) Reset() { *x = SignedBlindedBeaconBlockCapellaV2{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[10] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -601,7 +656,7 @@ func (x *SignedBlindedBeaconBlockCapellaV2) String() string { func (*SignedBlindedBeaconBlockCapellaV2) ProtoMessage() {} func (x *SignedBlindedBeaconBlockCapellaV2) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[10] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -614,7 +669,7 @@ func (x *SignedBlindedBeaconBlockCapellaV2) ProtoReflect() protoreflect.Message // Deprecated: Use SignedBlindedBeaconBlockCapellaV2.ProtoReflect.Descriptor instead. func (*SignedBlindedBeaconBlockCapellaV2) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{10} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{11} } func (x *SignedBlindedBeaconBlockCapellaV2) GetMessage() *BlindedBeaconBlockCapellaV2 { @@ -643,7 +698,7 @@ type SignedBeaconBlockAltair struct { func (x *SignedBeaconBlockAltair) Reset() { *x = SignedBeaconBlockAltair{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[11] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -656,7 +711,7 @@ func (x *SignedBeaconBlockAltair) String() string { func (*SignedBeaconBlockAltair) ProtoMessage() {} func (x *SignedBeaconBlockAltair) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[11] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -669,7 +724,7 @@ func (x *SignedBeaconBlockAltair) ProtoReflect() protoreflect.Message { // Deprecated: Use SignedBeaconBlockAltair.ProtoReflect.Descriptor instead. func (*SignedBeaconBlockAltair) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{11} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{12} } func (x *SignedBeaconBlockAltair) GetMessage() *BeaconBlockAltair { @@ -698,7 +753,7 @@ type SignedBeaconBlockAltairV2 struct { func (x *SignedBeaconBlockAltairV2) Reset() { *x = SignedBeaconBlockAltairV2{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[12] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -711,7 +766,7 @@ func (x *SignedBeaconBlockAltairV2) String() string { func (*SignedBeaconBlockAltairV2) ProtoMessage() {} func (x *SignedBeaconBlockAltairV2) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[12] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -724,7 +779,7 @@ func (x *SignedBeaconBlockAltairV2) ProtoReflect() protoreflect.Message { // Deprecated: Use SignedBeaconBlockAltairV2.ProtoReflect.Descriptor instead. func (*SignedBeaconBlockAltairV2) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{12} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{13} } func (x *SignedBeaconBlockAltairV2) GetMessage() *BeaconBlockAltairV2 { @@ -756,7 +811,7 @@ type BeaconBlockBellatrix struct { func (x *BeaconBlockBellatrix) Reset() { *x = BeaconBlockBellatrix{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[13] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -769,7 +824,7 @@ func (x *BeaconBlockBellatrix) String() string { func (*BeaconBlockBellatrix) ProtoMessage() {} func (x *BeaconBlockBellatrix) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[13] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -782,7 +837,7 @@ func (x *BeaconBlockBellatrix) ProtoReflect() protoreflect.Message { // Deprecated: Use BeaconBlockBellatrix.ProtoReflect.Descriptor instead. func (*BeaconBlockBellatrix) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{13} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{14} } func (x *BeaconBlockBellatrix) GetSlot() uint64 { @@ -835,7 +890,7 @@ type BeaconBlockBellatrixV2 struct { func (x *BeaconBlockBellatrixV2) Reset() { *x = BeaconBlockBellatrixV2{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[14] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -848,7 +903,7 @@ func (x *BeaconBlockBellatrixV2) String() string { func (*BeaconBlockBellatrixV2) ProtoMessage() {} func (x *BeaconBlockBellatrixV2) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[14] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -861,7 +916,7 @@ func (x *BeaconBlockBellatrixV2) ProtoReflect() protoreflect.Message { // Deprecated: Use BeaconBlockBellatrixV2.ProtoReflect.Descriptor instead. func (*BeaconBlockBellatrixV2) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{14} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{15} } func (x *BeaconBlockBellatrixV2) GetSlot() *wrapperspb.UInt64Value { @@ -914,7 +969,7 @@ type BlindedBeaconBlockBellatrix struct { func (x *BlindedBeaconBlockBellatrix) Reset() { *x = BlindedBeaconBlockBellatrix{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[15] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -927,7 +982,7 @@ func (x *BlindedBeaconBlockBellatrix) String() string { func (*BlindedBeaconBlockBellatrix) ProtoMessage() {} func (x *BlindedBeaconBlockBellatrix) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[15] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -940,7 +995,7 @@ func (x *BlindedBeaconBlockBellatrix) ProtoReflect() protoreflect.Message { // Deprecated: Use BlindedBeaconBlockBellatrix.ProtoReflect.Descriptor instead. func (*BlindedBeaconBlockBellatrix) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{15} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{16} } func (x *BlindedBeaconBlockBellatrix) GetSlot() uint64 { @@ -993,7 +1048,7 @@ type BlindedBeaconBlockBellatrixV2 struct { func (x *BlindedBeaconBlockBellatrixV2) Reset() { *x = BlindedBeaconBlockBellatrixV2{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[16] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1006,7 +1061,7 @@ func (x *BlindedBeaconBlockBellatrixV2) String() string { func (*BlindedBeaconBlockBellatrixV2) ProtoMessage() {} func (x *BlindedBeaconBlockBellatrixV2) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[16] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1019,7 +1074,7 @@ func (x *BlindedBeaconBlockBellatrixV2) ProtoReflect() protoreflect.Message { // Deprecated: Use BlindedBeaconBlockBellatrixV2.ProtoReflect.Descriptor instead. func (*BlindedBeaconBlockBellatrixV2) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{16} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{17} } func (x *BlindedBeaconBlockBellatrixV2) GetSlot() *wrapperspb.UInt64Value { @@ -1072,7 +1127,7 @@ type BeaconBlockCapella struct { func (x *BeaconBlockCapella) Reset() { *x = BeaconBlockCapella{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[17] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1085,7 +1140,7 @@ func (x *BeaconBlockCapella) String() string { func (*BeaconBlockCapella) ProtoMessage() {} func (x *BeaconBlockCapella) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[17] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1098,7 +1153,7 @@ func (x *BeaconBlockCapella) ProtoReflect() protoreflect.Message { // Deprecated: Use BeaconBlockCapella.ProtoReflect.Descriptor instead. func (*BeaconBlockCapella) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{17} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{18} } func (x *BeaconBlockCapella) GetSlot() uint64 { @@ -1151,7 +1206,7 @@ type BeaconBlockCapellaV2 struct { func (x *BeaconBlockCapellaV2) Reset() { *x = BeaconBlockCapellaV2{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[18] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1164,7 +1219,7 @@ func (x *BeaconBlockCapellaV2) String() string { func (*BeaconBlockCapellaV2) ProtoMessage() {} func (x *BeaconBlockCapellaV2) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[18] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1177,7 +1232,7 @@ func (x *BeaconBlockCapellaV2) ProtoReflect() protoreflect.Message { // Deprecated: Use BeaconBlockCapellaV2.ProtoReflect.Descriptor instead. func (*BeaconBlockCapellaV2) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{18} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{19} } func (x *BeaconBlockCapellaV2) GetSlot() *wrapperspb.UInt64Value { @@ -1230,7 +1285,7 @@ type BeaconBlockDeneb struct { func (x *BeaconBlockDeneb) Reset() { *x = BeaconBlockDeneb{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[19] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1243,7 +1298,7 @@ func (x *BeaconBlockDeneb) String() string { func (*BeaconBlockDeneb) ProtoMessage() {} func (x *BeaconBlockDeneb) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[19] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1256,7 +1311,7 @@ func (x *BeaconBlockDeneb) ProtoReflect() protoreflect.Message { // Deprecated: Use BeaconBlockDeneb.ProtoReflect.Descriptor instead. func (*BeaconBlockDeneb) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{19} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{20} } func (x *BeaconBlockDeneb) GetSlot() *wrapperspb.UInt64Value { @@ -1309,7 +1364,7 @@ type BeaconBlockElectra struct { func (x *BeaconBlockElectra) Reset() { *x = BeaconBlockElectra{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[20] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1322,7 +1377,7 @@ func (x *BeaconBlockElectra) String() string { func (*BeaconBlockElectra) ProtoMessage() {} func (x *BeaconBlockElectra) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[20] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1335,7 +1390,7 @@ func (x *BeaconBlockElectra) ProtoReflect() protoreflect.Message { // Deprecated: Use BeaconBlockElectra.ProtoReflect.Descriptor instead. func (*BeaconBlockElectra) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{20} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{21} } func (x *BeaconBlockElectra) GetSlot() *wrapperspb.UInt64Value { @@ -1388,7 +1443,7 @@ type BeaconBlockFulu struct { func (x *BeaconBlockFulu) Reset() { *x = BeaconBlockFulu{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[21] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1401,7 +1456,7 @@ func (x *BeaconBlockFulu) String() string { func (*BeaconBlockFulu) ProtoMessage() {} func (x *BeaconBlockFulu) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[21] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1414,7 +1469,7 @@ func (x *BeaconBlockFulu) ProtoReflect() protoreflect.Message { // Deprecated: Use BeaconBlockFulu.ProtoReflect.Descriptor instead. func (*BeaconBlockFulu) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{21} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{22} } func (x *BeaconBlockFulu) GetSlot() *wrapperspb.UInt64Value { @@ -1452,6 +1507,85 @@ func (x *BeaconBlockFulu) GetBody() *BeaconBlockBodyFulu { return nil } +type BeaconBlockGloas struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Slot *wrapperspb.UInt64Value `protobuf:"bytes,1,opt,name=slot,proto3" json:"slot,omitempty"` + ProposerIndex *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=proposer_index,proto3" json:"proposer_index,omitempty"` + ParentRoot string `protobuf:"bytes,3,opt,name=parent_root,proto3" json:"parent_root,omitempty"` + StateRoot string `protobuf:"bytes,4,opt,name=state_root,proto3" json:"state_root,omitempty"` + Body *BeaconBlockBodyGloas `protobuf:"bytes,5,opt,name=body,proto3" json:"body,omitempty"` +} + +func (x *BeaconBlockGloas) Reset() { + *x = BeaconBlockGloas{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BeaconBlockGloas) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BeaconBlockGloas) ProtoMessage() {} + +func (x *BeaconBlockGloas) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[23] + 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 BeaconBlockGloas.ProtoReflect.Descriptor instead. +func (*BeaconBlockGloas) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{23} +} + +func (x *BeaconBlockGloas) GetSlot() *wrapperspb.UInt64Value { + if x != nil { + return x.Slot + } + return nil +} + +func (x *BeaconBlockGloas) GetProposerIndex() *wrapperspb.UInt64Value { + if x != nil { + return x.ProposerIndex + } + return nil +} + +func (x *BeaconBlockGloas) GetParentRoot() string { + if x != nil { + return x.ParentRoot + } + return "" +} + +func (x *BeaconBlockGloas) GetStateRoot() string { + if x != nil { + return x.StateRoot + } + return "" +} + +func (x *BeaconBlockGloas) GetBody() *BeaconBlockBodyGloas { + if x != nil { + return x.Body + } + return nil +} + type BlindedBeaconBlockCapella struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1467,7 +1601,7 @@ type BlindedBeaconBlockCapella struct { func (x *BlindedBeaconBlockCapella) Reset() { *x = BlindedBeaconBlockCapella{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[22] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1480,7 +1614,7 @@ func (x *BlindedBeaconBlockCapella) String() string { func (*BlindedBeaconBlockCapella) ProtoMessage() {} func (x *BlindedBeaconBlockCapella) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[22] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1493,7 +1627,7 @@ func (x *BlindedBeaconBlockCapella) ProtoReflect() protoreflect.Message { // Deprecated: Use BlindedBeaconBlockCapella.ProtoReflect.Descriptor instead. func (*BlindedBeaconBlockCapella) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{22} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{24} } func (x *BlindedBeaconBlockCapella) GetSlot() uint64 { @@ -1546,7 +1680,7 @@ type BlindedBeaconBlockCapellaV2 struct { func (x *BlindedBeaconBlockCapellaV2) Reset() { *x = BlindedBeaconBlockCapellaV2{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[23] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1559,7 +1693,7 @@ func (x *BlindedBeaconBlockCapellaV2) String() string { func (*BlindedBeaconBlockCapellaV2) ProtoMessage() {} func (x *BlindedBeaconBlockCapellaV2) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[23] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1572,7 +1706,7 @@ func (x *BlindedBeaconBlockCapellaV2) ProtoReflect() protoreflect.Message { // Deprecated: Use BlindedBeaconBlockCapellaV2.ProtoReflect.Descriptor instead. func (*BlindedBeaconBlockCapellaV2) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{23} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{25} } func (x *BlindedBeaconBlockCapellaV2) GetSlot() *wrapperspb.UInt64Value { @@ -1625,7 +1759,7 @@ type BeaconBlockAltair struct { func (x *BeaconBlockAltair) Reset() { *x = BeaconBlockAltair{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[24] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1638,7 +1772,7 @@ func (x *BeaconBlockAltair) String() string { func (*BeaconBlockAltair) ProtoMessage() {} func (x *BeaconBlockAltair) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[24] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1651,7 +1785,7 @@ func (x *BeaconBlockAltair) ProtoReflect() protoreflect.Message { // Deprecated: Use BeaconBlockAltair.ProtoReflect.Descriptor instead. func (*BeaconBlockAltair) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{24} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{26} } func (x *BeaconBlockAltair) GetSlot() uint64 { @@ -1704,7 +1838,7 @@ type BeaconBlockAltairV2 struct { func (x *BeaconBlockAltairV2) Reset() { *x = BeaconBlockAltairV2{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[25] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1717,7 +1851,7 @@ func (x *BeaconBlockAltairV2) String() string { func (*BeaconBlockAltairV2) ProtoMessage() {} func (x *BeaconBlockAltairV2) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[25] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1730,7 +1864,7 @@ func (x *BeaconBlockAltairV2) ProtoReflect() protoreflect.Message { // Deprecated: Use BeaconBlockAltairV2.ProtoReflect.Descriptor instead. func (*BeaconBlockAltairV2) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{25} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{27} } func (x *BeaconBlockAltairV2) GetSlot() *wrapperspb.UInt64Value { @@ -1788,7 +1922,7 @@ type BeaconBlockBodyBellatrix struct { func (x *BeaconBlockBodyBellatrix) Reset() { *x = BeaconBlockBodyBellatrix{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[26] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1801,7 +1935,7 @@ func (x *BeaconBlockBodyBellatrix) String() string { func (*BeaconBlockBodyBellatrix) ProtoMessage() {} func (x *BeaconBlockBodyBellatrix) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[26] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1814,7 +1948,7 @@ func (x *BeaconBlockBodyBellatrix) ProtoReflect() protoreflect.Message { // Deprecated: Use BeaconBlockBodyBellatrix.ProtoReflect.Descriptor instead. func (*BeaconBlockBodyBellatrix) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{26} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{28} } func (x *BeaconBlockBodyBellatrix) GetRandaoReveal() string { @@ -1907,7 +2041,7 @@ type BeaconBlockBodyBellatrixV2 struct { func (x *BeaconBlockBodyBellatrixV2) Reset() { *x = BeaconBlockBodyBellatrixV2{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[27] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1920,7 +2054,7 @@ func (x *BeaconBlockBodyBellatrixV2) String() string { func (*BeaconBlockBodyBellatrixV2) ProtoMessage() {} func (x *BeaconBlockBodyBellatrixV2) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[27] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1933,7 +2067,7 @@ func (x *BeaconBlockBodyBellatrixV2) ProtoReflect() protoreflect.Message { // Deprecated: Use BeaconBlockBodyBellatrixV2.ProtoReflect.Descriptor instead. func (*BeaconBlockBodyBellatrixV2) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{27} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{29} } func (x *BeaconBlockBodyBellatrixV2) GetRandaoReveal() string { @@ -2026,7 +2160,7 @@ type BlindedBeaconBlockBodyBellatrix struct { func (x *BlindedBeaconBlockBodyBellatrix) Reset() { *x = BlindedBeaconBlockBodyBellatrix{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[28] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2039,7 +2173,7 @@ func (x *BlindedBeaconBlockBodyBellatrix) String() string { func (*BlindedBeaconBlockBodyBellatrix) ProtoMessage() {} func (x *BlindedBeaconBlockBodyBellatrix) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[28] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2052,7 +2186,7 @@ func (x *BlindedBeaconBlockBodyBellatrix) ProtoReflect() protoreflect.Message { // Deprecated: Use BlindedBeaconBlockBodyBellatrix.ProtoReflect.Descriptor instead. func (*BlindedBeaconBlockBodyBellatrix) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{28} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{30} } func (x *BlindedBeaconBlockBodyBellatrix) GetRandaoReveal() string { @@ -2145,7 +2279,7 @@ type BlindedBeaconBlockBodyBellatrixV2 struct { func (x *BlindedBeaconBlockBodyBellatrixV2) Reset() { *x = BlindedBeaconBlockBodyBellatrixV2{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[29] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2158,7 +2292,7 @@ func (x *BlindedBeaconBlockBodyBellatrixV2) String() string { func (*BlindedBeaconBlockBodyBellatrixV2) ProtoMessage() {} func (x *BlindedBeaconBlockBodyBellatrixV2) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[29] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2171,7 +2305,7 @@ func (x *BlindedBeaconBlockBodyBellatrixV2) ProtoReflect() protoreflect.Message // Deprecated: Use BlindedBeaconBlockBodyBellatrixV2.ProtoReflect.Descriptor instead. func (*BlindedBeaconBlockBodyBellatrixV2) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{29} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{31} } func (x *BlindedBeaconBlockBodyBellatrixV2) GetRandaoReveal() string { @@ -2265,7 +2399,7 @@ type BeaconBlockBodyCapella struct { func (x *BeaconBlockBodyCapella) Reset() { *x = BeaconBlockBodyCapella{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[30] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2278,7 +2412,7 @@ func (x *BeaconBlockBodyCapella) String() string { func (*BeaconBlockBodyCapella) ProtoMessage() {} func (x *BeaconBlockBodyCapella) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[30] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2291,7 +2425,7 @@ func (x *BeaconBlockBodyCapella) ProtoReflect() protoreflect.Message { // Deprecated: Use BeaconBlockBodyCapella.ProtoReflect.Descriptor instead. func (*BeaconBlockBodyCapella) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{30} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{32} } func (x *BeaconBlockBodyCapella) GetRandaoReveal() string { @@ -2392,7 +2526,7 @@ type BeaconBlockBodyCapellaV2 struct { func (x *BeaconBlockBodyCapellaV2) Reset() { *x = BeaconBlockBodyCapellaV2{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[31] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2405,7 +2539,7 @@ func (x *BeaconBlockBodyCapellaV2) String() string { func (*BeaconBlockBodyCapellaV2) ProtoMessage() {} func (x *BeaconBlockBodyCapellaV2) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[31] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2418,7 +2552,7 @@ func (x *BeaconBlockBodyCapellaV2) ProtoReflect() protoreflect.Message { // Deprecated: Use BeaconBlockBodyCapellaV2.ProtoReflect.Descriptor instead. func (*BeaconBlockBodyCapellaV2) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{31} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{33} } func (x *BeaconBlockBodyCapellaV2) GetRandaoReveal() string { @@ -2520,7 +2654,7 @@ type BeaconBlockBodyDeneb struct { func (x *BeaconBlockBodyDeneb) Reset() { *x = BeaconBlockBodyDeneb{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[32] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2533,7 +2667,7 @@ func (x *BeaconBlockBodyDeneb) String() string { func (*BeaconBlockBodyDeneb) ProtoMessage() {} func (x *BeaconBlockBodyDeneb) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[32] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2546,7 +2680,7 @@ func (x *BeaconBlockBodyDeneb) ProtoReflect() protoreflect.Message { // Deprecated: Use BeaconBlockBodyDeneb.ProtoReflect.Descriptor instead. func (*BeaconBlockBodyDeneb) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{32} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{34} } func (x *BeaconBlockBodyDeneb) GetRandaoReveal() string { @@ -2656,7 +2790,7 @@ type BeaconBlockBodyElectra struct { func (x *BeaconBlockBodyElectra) Reset() { *x = BeaconBlockBodyElectra{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[33] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2669,7 +2803,7 @@ func (x *BeaconBlockBodyElectra) String() string { func (*BeaconBlockBodyElectra) ProtoMessage() {} func (x *BeaconBlockBodyElectra) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[33] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2682,7 +2816,7 @@ func (x *BeaconBlockBodyElectra) ProtoReflect() protoreflect.Message { // Deprecated: Use BeaconBlockBodyElectra.ProtoReflect.Descriptor instead. func (*BeaconBlockBodyElectra) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{33} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{35} } func (x *BeaconBlockBodyElectra) GetRandaoReveal() string { @@ -2799,7 +2933,7 @@ type BeaconBlockBodyFulu struct { func (x *BeaconBlockBodyFulu) Reset() { *x = BeaconBlockBodyFulu{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[34] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2812,7 +2946,7 @@ func (x *BeaconBlockBodyFulu) String() string { func (*BeaconBlockBodyFulu) ProtoMessage() {} func (x *BeaconBlockBodyFulu) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[34] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2825,7 +2959,7 @@ func (x *BeaconBlockBodyFulu) ProtoReflect() protoreflect.Message { // Deprecated: Use BeaconBlockBodyFulu.ProtoReflect.Descriptor instead. func (*BeaconBlockBodyFulu) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{34} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{36} } func (x *BeaconBlockBodyFulu) GetRandaoReveal() string { @@ -2919,6 +3053,149 @@ func (x *BeaconBlockBodyFulu) GetExecutionRequests() *v1.ElectraExecutionRequest return nil } +type BeaconBlockBodyGloas struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RandaoReveal string `protobuf:"bytes,1,opt,name=randao_reveal,proto3" json:"randao_reveal,omitempty"` + Eth1Data *v1.Eth1Data `protobuf:"bytes,2,opt,name=eth1_data,proto3" json:"eth1_data,omitempty"` + Graffiti string `protobuf:"bytes,3,opt,name=graffiti,proto3" json:"graffiti,omitempty"` + ProposerSlashings []*v1.ProposerSlashing `protobuf:"bytes,4,rep,name=proposer_slashings,proto3" json:"proposer_slashings,omitempty"` + AttesterSlashings []*v1.AttesterSlashing `protobuf:"bytes,5,rep,name=attester_slashings,proto3" json:"attester_slashings,omitempty"` + Attestations []*v1.Attestation `protobuf:"bytes,6,rep,name=attestations,proto3" json:"attestations,omitempty"` + Deposits []*v1.Deposit `protobuf:"bytes,7,rep,name=deposits,proto3" json:"deposits,omitempty"` + VoluntaryExits []*v1.SignedVoluntaryExit `protobuf:"bytes,8,rep,name=voluntary_exits,proto3" json:"voluntary_exits,omitempty"` + SyncAggregate *v1.SyncAggregate `protobuf:"bytes,9,opt,name=sync_aggregate,proto3" json:"sync_aggregate,omitempty"` + ExecutionPayload *v1.ExecutionPayloadGloas `protobuf:"bytes,10,opt,name=execution_payload,proto3" json:"execution_payload,omitempty"` + BlsToExecutionChanges []*SignedBLSToExecutionChange `protobuf:"bytes,11,rep,name=bls_to_execution_changes,proto3" json:"bls_to_execution_changes,omitempty"` + BlobKzgCommitments []string `protobuf:"bytes,12,rep,name=blob_kzg_commitments,proto3" json:"blob_kzg_commitments,omitempty"` + ExecutionRequests *v1.ElectraExecutionRequests `protobuf:"bytes,13,opt,name=execution_requests,proto3" json:"execution_requests,omitempty"` +} + +func (x *BeaconBlockBodyGloas) Reset() { + *x = BeaconBlockBodyGloas{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BeaconBlockBodyGloas) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BeaconBlockBodyGloas) ProtoMessage() {} + +func (x *BeaconBlockBodyGloas) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[37] + 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 BeaconBlockBodyGloas.ProtoReflect.Descriptor instead. +func (*BeaconBlockBodyGloas) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{37} +} + +func (x *BeaconBlockBodyGloas) GetRandaoReveal() string { + if x != nil { + return x.RandaoReveal + } + return "" +} + +func (x *BeaconBlockBodyGloas) GetEth1Data() *v1.Eth1Data { + if x != nil { + return x.Eth1Data + } + return nil +} + +func (x *BeaconBlockBodyGloas) GetGraffiti() string { + if x != nil { + return x.Graffiti + } + return "" +} + +func (x *BeaconBlockBodyGloas) GetProposerSlashings() []*v1.ProposerSlashing { + if x != nil { + return x.ProposerSlashings + } + return nil +} + +func (x *BeaconBlockBodyGloas) GetAttesterSlashings() []*v1.AttesterSlashing { + if x != nil { + return x.AttesterSlashings + } + return nil +} + +func (x *BeaconBlockBodyGloas) GetAttestations() []*v1.Attestation { + if x != nil { + return x.Attestations + } + return nil +} + +func (x *BeaconBlockBodyGloas) GetDeposits() []*v1.Deposit { + if x != nil { + return x.Deposits + } + return nil +} + +func (x *BeaconBlockBodyGloas) GetVoluntaryExits() []*v1.SignedVoluntaryExit { + if x != nil { + return x.VoluntaryExits + } + return nil +} + +func (x *BeaconBlockBodyGloas) GetSyncAggregate() *v1.SyncAggregate { + if x != nil { + return x.SyncAggregate + } + return nil +} + +func (x *BeaconBlockBodyGloas) GetExecutionPayload() *v1.ExecutionPayloadGloas { + if x != nil { + return x.ExecutionPayload + } + return nil +} + +func (x *BeaconBlockBodyGloas) GetBlsToExecutionChanges() []*SignedBLSToExecutionChange { + if x != nil { + return x.BlsToExecutionChanges + } + return nil +} + +func (x *BeaconBlockBodyGloas) GetBlobKzgCommitments() []string { + if x != nil { + return x.BlobKzgCommitments + } + return nil +} + +func (x *BeaconBlockBodyGloas) GetExecutionRequests() *v1.ElectraExecutionRequests { + if x != nil { + return x.ExecutionRequests + } + return nil +} + type BlindedBeaconBlockBodyCapella struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2940,7 +3217,7 @@ type BlindedBeaconBlockBodyCapella struct { func (x *BlindedBeaconBlockBodyCapella) Reset() { *x = BlindedBeaconBlockBodyCapella{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[35] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2953,7 +3230,7 @@ func (x *BlindedBeaconBlockBodyCapella) String() string { func (*BlindedBeaconBlockBodyCapella) ProtoMessage() {} func (x *BlindedBeaconBlockBodyCapella) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[35] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2966,7 +3243,7 @@ func (x *BlindedBeaconBlockBodyCapella) ProtoReflect() protoreflect.Message { // Deprecated: Use BlindedBeaconBlockBodyCapella.ProtoReflect.Descriptor instead. func (*BlindedBeaconBlockBodyCapella) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{35} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{38} } func (x *BlindedBeaconBlockBodyCapella) GetRandaoReveal() string { @@ -3067,7 +3344,7 @@ type BlindedBeaconBlockBodyCapellaV2 struct { func (x *BlindedBeaconBlockBodyCapellaV2) Reset() { *x = BlindedBeaconBlockBodyCapellaV2{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[36] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3080,7 +3357,7 @@ func (x *BlindedBeaconBlockBodyCapellaV2) String() string { func (*BlindedBeaconBlockBodyCapellaV2) ProtoMessage() {} func (x *BlindedBeaconBlockBodyCapellaV2) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[36] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3093,7 +3370,7 @@ func (x *BlindedBeaconBlockBodyCapellaV2) ProtoReflect() protoreflect.Message { // Deprecated: Use BlindedBeaconBlockBodyCapellaV2.ProtoReflect.Descriptor instead. func (*BlindedBeaconBlockBodyCapellaV2) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{36} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{39} } func (x *BlindedBeaconBlockBodyCapellaV2) GetRandaoReveal() string { @@ -3193,7 +3470,7 @@ type BeaconBlockBodyAltair struct { func (x *BeaconBlockBodyAltair) Reset() { *x = BeaconBlockBodyAltair{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[37] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3206,7 +3483,7 @@ func (x *BeaconBlockBodyAltair) String() string { func (*BeaconBlockBodyAltair) ProtoMessage() {} func (x *BeaconBlockBodyAltair) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[37] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3219,7 +3496,7 @@ func (x *BeaconBlockBodyAltair) ProtoReflect() protoreflect.Message { // Deprecated: Use BeaconBlockBodyAltair.ProtoReflect.Descriptor instead. func (*BeaconBlockBodyAltair) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{37} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{40} } func (x *BeaconBlockBodyAltair) GetRandaoReveal() string { @@ -3305,7 +3582,7 @@ type BeaconBlockBodyAltairV2 struct { func (x *BeaconBlockBodyAltairV2) Reset() { *x = BeaconBlockBodyAltairV2{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[38] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3318,7 +3595,7 @@ func (x *BeaconBlockBodyAltairV2) String() string { func (*BeaconBlockBodyAltairV2) ProtoMessage() {} func (x *BeaconBlockBodyAltairV2) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[38] + mi := &file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3331,7 +3608,7 @@ func (x *BeaconBlockBodyAltairV2) ProtoReflect() protoreflect.Message { // Deprecated: Use BeaconBlockBodyAltairV2.ProtoReflect.Descriptor instead. func (*BeaconBlockBodyAltairV2) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{38} + return file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP(), []int{41} } func (x *BeaconBlockBodyAltairV2) GetRandaoReveal() string { @@ -3470,102 +3747,156 @@ var file_pkg_proto_eth_v2_beacon_block_proto_rawDesc = []byte{ 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x75, 0x6c, 0x75, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x85, - 0x01, 0x0a, 0x21, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, - 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, - 0x74, 0x72, 0x69, 0x78, 0x12, 0x42, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x53, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x12, 0x44, - 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x6f, + 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x47, 0x6c, 0x6f, 0x61, 0x73, 0x12, 0x37, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x47, 0x6c, 0x6f, 0x61, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, + 0x85, 0x01, 0x0a, 0x21, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, + 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, + 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x42, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, + 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x53, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x12, + 0x44, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, + 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x52, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x1f, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x52, 0x07, 0x6d, 0x65, 0x73, + 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x12, 0x40, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, + 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x21, 0x53, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x12, 0x42, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, + 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, + 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, + 0x71, 0x0a, 0x17, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x12, 0x38, 0x0a, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x1f, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x6c, 0x69, - 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, - 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x12, 0x40, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x72, 0x65, 0x22, 0x75, 0x0a, 0x19, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x56, 0x32, 0x12, + 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, + 0x56, 0x32, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x14, 0x42, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, + 0x69, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, + 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x12, 0x39, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, + 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x8f, 0x02, 0x0a, 0x16, + 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, + 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, + 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x12, 0x3b, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, + 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0xdd, 0x01, + 0x0a, 0x1b, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x62, + 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, + 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x9d, 0x02, + 0x0a, 0x1d, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x12, + 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x62, 0x6f, 0x64, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x52, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x21, 0x53, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x12, 0x42, 0x0a, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, 0x6e, - 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, - 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x71, - 0x0a, 0x17, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x12, 0x38, 0x0a, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x22, 0x75, 0x0a, 0x19, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x56, 0x32, 0x12, 0x3a, - 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x56, - 0x32, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x14, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, - 0x78, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, - 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, - 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, - 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, - 0x39, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, 0x61, - 0x74, 0x72, 0x69, 0x78, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x8f, 0x02, 0x0a, 0x16, 0x42, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, - 0x72, 0x69, 0x78, 0x56, 0x32, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, - 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, - 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, - 0x3b, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, 0x61, - 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0xdd, 0x01, 0x0a, - 0x1b, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x12, 0x0a, 0x04, - 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x62, 0x6f, - 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, - 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x9d, 0x02, 0x0a, - 0x1d, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x12, 0x30, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, + 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0xcb, 0x01, + 0x0a, 0x12, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, + 0x65, 0x6c, 0x6c, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, + 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, + 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, + 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x8b, 0x02, 0x0a, 0x14, + 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, + 0x6c, 0x61, 0x56, 0x32, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x39, + 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, + 0x61, 0x56, 0x32, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x83, 0x02, 0x0a, 0x10, 0x42, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x6e, 0x65, 0x62, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, @@ -3577,42 +3908,28 @@ var file_pkg_proto_eth_v2_beacon_block_proto_rawDesc = []byte{ 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, 0x61, - 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0xcb, 0x01, 0x0a, - 0x12, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, - 0x6c, 0x6c, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, - 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, - 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, - 0x74, 0x12, 0x37, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, - 0x65, 0x6c, 0x6c, 0x61, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x8b, 0x02, 0x0a, 0x14, 0x42, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, - 0x61, 0x56, 0x32, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, - 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x39, 0x0a, - 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, - 0x56, 0x32, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x83, 0x02, 0x0a, 0x10, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x6e, 0x65, 0x62, 0x12, 0x30, 0x0a, + 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x42, 0x6f, 0x64, 0x79, 0x44, 0x65, 0x6e, 0x65, 0x62, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, + 0x87, 0x02, 0x0a, 0x12, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, + 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, + 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x12, 0x37, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x45, 0x6c, 0x65, 0x63, + 0x74, 0x72, 0x61, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x81, 0x02, 0x0a, 0x0f, 0x42, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x75, 0x6c, 0x75, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, @@ -3624,412 +3941,89 @@ var file_pkg_proto_eth_v2_beacon_block_proto_rawDesc = []byte{ 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, - 0x6f, 0x64, 0x79, 0x44, 0x65, 0x6e, 0x65, 0x62, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x87, - 0x02, 0x0a, 0x12, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6c, - 0x65, 0x63, 0x74, 0x72, 0x61, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, + 0x6f, 0x64, 0x79, 0x46, 0x75, 0x6c, 0x75, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x83, 0x02, + 0x0a, 0x10, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6c, 0x6f, + 0x61, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, + 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x04, + 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x47, 0x6c, 0x6f, 0x61, 0x73, 0x52, 0x04, 0x62, + 0x6f, 0x64, 0x79, 0x22, 0xd9, 0x01, 0x0a, 0x19, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, + 0x61, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, + 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, + 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, + 0x3e, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, 0x6e, + 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, + 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, + 0x99, 0x02, 0x0a, 0x1b, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x12, + 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x62, 0x6f, 0x64, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, + 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0xc9, 0x01, 0x0a, 0x11, + 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, + 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, - 0x37, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x36, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x45, 0x6c, 0x65, 0x63, 0x74, - 0x72, 0x61, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x81, 0x02, 0x0a, 0x0f, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x75, 0x6c, 0x75, 0x12, 0x30, 0x0a, 0x04, - 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, - 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, - 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, - 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, - 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, - 0x64, 0x79, 0x46, 0x75, 0x6c, 0x75, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0xd9, 0x01, 0x0a, - 0x19, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x26, - 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, - 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, - 0x6c, 0x61, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x99, 0x02, 0x0a, 0x1b, 0x42, 0x6c, 0x69, - 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, - 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, - 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, - 0x6f, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, - 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x52, 0x04, - 0x62, 0x6f, 0x64, 0x79, 0x22, 0xc9, 0x01, 0x0a, 0x11, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x26, - 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, - 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x36, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x42, 0x6f, 0x64, 0x79, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, - 0x22, 0x89, 0x02, 0x0a, 0x13, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x56, 0x32, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, - 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, - 0x6f, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x41, 0x6c, - 0x74, 0x61, 0x69, 0x72, 0x56, 0x32, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0xfc, 0x04, 0x0a, - 0x18, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, - 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, - 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, - 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, - 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, - 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, - 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, - 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, - 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, - 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, - 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, - 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, - 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, - 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, - 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, - 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x4b, - 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x80, 0x05, 0x0a, 0x1a, - 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, - 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, - 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, - 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, - 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, - 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, - 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, - 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, - 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, - 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, - 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, - 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, - 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, - 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, - 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, - 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, - 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, - 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x56, 0x32, 0x52, 0x11, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x97, - 0x05, 0x0a, 0x1f, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, - 0x69, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, - 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, - 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, - 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, - 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, - 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, - 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, - 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, - 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, - 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, - 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x5f, 0x0a, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x18, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x9b, 0x05, 0x0a, 0x21, 0x42, 0x6c, 0x69, - 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, - 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x12, 0x24, - 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, - 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, - 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, - 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, - 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, - 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, - 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, - 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, - 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, - 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, - 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, - 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, - 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x65, 0x12, 0x61, 0x0a, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x32, 0x52, 0x18, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xe6, 0x05, 0x0a, 0x16, 0x42, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, - 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, - 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, - 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, - 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, - 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, - 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, - 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, - 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, - 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, - 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, - 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, - 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, - 0xea, 0x05, 0x0a, 0x18, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, - 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x12, 0x24, 0x0a, 0x0d, - 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, - 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, - 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, - 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, - 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, - 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, - 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, - 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, - 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, - 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, - 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x12, 0x54, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x70, 0x65, 0x6c, - 0x6c, 0x61, 0x56, 0x32, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, - 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, - 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x96, 0x06, 0x0a, - 0x14, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, - 0x44, 0x65, 0x6e, 0x65, 0x62, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, - 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, - 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, - 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, - 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, - 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, - 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, - 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, - 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, - 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, - 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, - 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, - 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6e, 0x65, 0x62, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x63, 0x0a, 0x18, - 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x12, 0x32, 0x0a, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xf1, 0x06, 0x0a, 0x16, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x41, 0x6c, 0x74, 0x61, 0x69, + 0x72, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x89, 0x02, 0x0a, 0x13, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x56, 0x32, 0x12, + 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x62, 0x6f, 0x64, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x56, 0x32, 0x52, 0x04, 0x62, + 0x6f, 0x64, 0x79, 0x22, 0xfc, 0x04, 0x0a, 0x18, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, @@ -4063,29 +4057,14 @@ var file_pkg_proto_eth_v2_beacon_block_proto_rawDesc = []byte{ 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x4b, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, - 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, - 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x32, - 0x0a, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x62, 0x6c, - 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x55, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6c, 0x65, - 0x63, 0x74, 0x72, 0x61, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0xee, 0x06, 0x0a, 0x13, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x46, 0x75, 0x6c, - 0x75, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, + 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, + 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x22, 0x80, 0x05, 0x0a, 0x1a, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, + 0x32, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, @@ -4118,29 +4097,190 @@ var file_pkg_proto_eth_v2_beacon_block_proto_rawDesc = []byte{ 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, + 0x56, 0x32, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x97, 0x05, 0x0a, 0x1f, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, + 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, + 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, + 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, + 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, + 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, + 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, + 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, + 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, + 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, + 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, + 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, + 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, + 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, + 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x5f, + 0x0a, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, + 0x9b, 0x05, 0x0a, 0x21, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, + 0x72, 0x69, 0x78, 0x56, 0x32, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, + 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, + 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, + 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, + 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, + 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, + 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, + 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, + 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, + 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, + 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, + 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, + 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x61, 0x0a, 0x18, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x56, 0x32, 0x52, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xe6, 0x05, + 0x0a, 0x16, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, + 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, + 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, + 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, + 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, + 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, + 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, + 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, + 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, + 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, + 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, + 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, + 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x52, 0x11, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, - 0x32, 0x0a, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x62, - 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x55, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6c, - 0x65, 0x63, 0x74, 0x72, 0x61, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x81, 0x06, 0x0a, 0x1d, 0x42, - 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x12, 0x24, 0x0a, 0x0d, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0xea, 0x05, 0x0a, 0x18, 0x42, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, + 0x61, 0x56, 0x32, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, + 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, + 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, + 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, + 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, + 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, + 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, + 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, + 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, + 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, + 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, + 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, + 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x54, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x52, 0x11, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x63, + 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, + 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x22, 0x96, 0x06, 0x0a, 0x14, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x44, 0x65, 0x6e, 0x65, 0x62, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, @@ -4174,141 +4314,357 @@ var file_pkg_proto_eth_v2_beacon_block_proto_rawDesc = []byte{ 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x12, 0x66, 0x0a, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x52, - 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, + 0x65, 0x12, 0x50, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6e, 0x65, 0x62, + 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, + 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, + 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x62, 0x6c, 0x6f, 0x62, + 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xf1, 0x06, 0x0a, + 0x16, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, + 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, + 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, + 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, + 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, + 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, + 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, + 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, + 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, + 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, + 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, + 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, + 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x11, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x52, 0x11, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, + 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x85, - 0x06, 0x0a, 0x1f, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, - 0x56, 0x32, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, - 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, - 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, - 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, - 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, - 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, - 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, - 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, - 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, - 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, - 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x68, 0x0a, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x61, - 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x52, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, + 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x55, 0x0a, 0x12, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x12, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, + 0x22, 0xee, 0x06, 0x0a, 0x13, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x42, 0x6f, 0x64, 0x79, 0x46, 0x75, 0x6c, 0x75, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, + 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, + 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, + 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, + 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, + 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, + 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, + 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, + 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, + 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, + 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, + 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x52, 0x11, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0xac, 0x04, 0x0a, 0x15, 0x42, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, - 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, - 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, - 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, - 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, - 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, - 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, - 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, - 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, - 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, - 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, - 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, - 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x22, 0xae, 0x04, 0x0a, 0x17, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x56, - 0x32, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, - 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, - 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, - 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, - 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, - 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, - 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, - 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, + 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x55, 0x0a, 0x12, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x12, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x73, 0x22, 0xed, 0x06, 0x0a, 0x14, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x47, 0x6c, 0x6f, 0x61, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, + 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, + 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, + 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, + 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, + 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, + 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, + 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, - 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, - 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, - 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, - 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, - 0x65, 0x74, 0x68, 0x2f, 0x76, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, + 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, + 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, + 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, + 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, + 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, + 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, + 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, + 0x50, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x47, 0x6c, 0x6f, 0x61, 0x73, 0x52, 0x11, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, + 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, + 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x55, 0x0a, 0x12, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x12, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x73, 0x22, 0x81, 0x06, 0x0a, 0x1d, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, + 0x6c, 0x6c, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, + 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, + 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, + 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, + 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, + 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, + 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, + 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, + 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, + 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, + 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, + 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, + 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x66, 0x0a, 0x18, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, + 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x52, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, + 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, + 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x85, 0x06, 0x0a, 0x1f, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, + 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, + 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, + 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, + 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, + 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, + 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, + 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, + 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, + 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, + 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, + 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, + 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, + 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, + 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x68, + 0x0a, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x52, 0x18, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, + 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, + 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0xac, 0x04, + 0x0a, 0x15, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, + 0x79, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, + 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, + 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, + 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, + 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, + 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, + 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, + 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, + 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, + 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, + 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, + 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x22, 0xae, 0x04, 0x0a, + 0x17, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, + 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x56, 0x32, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, + 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, + 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, + 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, + 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, + 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, + 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, + 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, + 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, + 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, + 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x42, 0x2e, 0x5a, + 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, + 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x32, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -4323,7 +4679,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_rawDescGZIP() []byte { return file_pkg_proto_eth_v2_beacon_block_proto_rawDescData } -var file_pkg_proto_eth_v2_beacon_block_proto_msgTypes = make([]protoimpl.MessageInfo, 39) +var file_pkg_proto_eth_v2_beacon_block_proto_msgTypes = make([]protoimpl.MessageInfo, 42) var file_pkg_proto_eth_v2_beacon_block_proto_goTypes = []any{ (*SignedBeaconBlockBellatrix)(nil), // 0: xatu.eth.v2.SignedBeaconBlockBellatrix (*SignedBeaconBlockBellatrixV2)(nil), // 1: xatu.eth.v2.SignedBeaconBlockBellatrixV2 @@ -4332,218 +4688,236 @@ var file_pkg_proto_eth_v2_beacon_block_proto_goTypes = []any{ (*SignedBeaconBlockDeneb)(nil), // 4: xatu.eth.v2.SignedBeaconBlockDeneb (*SignedBeaconBlockElectra)(nil), // 5: xatu.eth.v2.SignedBeaconBlockElectra (*SignedBeaconBlockFulu)(nil), // 6: xatu.eth.v2.SignedBeaconBlockFulu - (*SignedBlindedBeaconBlockBellatrix)(nil), // 7: xatu.eth.v2.SignedBlindedBeaconBlockBellatrix - (*SignedBlindedBeaconBlockBellatrixV2)(nil), // 8: xatu.eth.v2.SignedBlindedBeaconBlockBellatrixV2 - (*SignedBlindedBeaconBlockCapella)(nil), // 9: xatu.eth.v2.SignedBlindedBeaconBlockCapella - (*SignedBlindedBeaconBlockCapellaV2)(nil), // 10: xatu.eth.v2.SignedBlindedBeaconBlockCapellaV2 - (*SignedBeaconBlockAltair)(nil), // 11: xatu.eth.v2.SignedBeaconBlockAltair - (*SignedBeaconBlockAltairV2)(nil), // 12: xatu.eth.v2.SignedBeaconBlockAltairV2 - (*BeaconBlockBellatrix)(nil), // 13: xatu.eth.v2.BeaconBlockBellatrix - (*BeaconBlockBellatrixV2)(nil), // 14: xatu.eth.v2.BeaconBlockBellatrixV2 - (*BlindedBeaconBlockBellatrix)(nil), // 15: xatu.eth.v2.BlindedBeaconBlockBellatrix - (*BlindedBeaconBlockBellatrixV2)(nil), // 16: xatu.eth.v2.BlindedBeaconBlockBellatrixV2 - (*BeaconBlockCapella)(nil), // 17: xatu.eth.v2.BeaconBlockCapella - (*BeaconBlockCapellaV2)(nil), // 18: xatu.eth.v2.BeaconBlockCapellaV2 - (*BeaconBlockDeneb)(nil), // 19: xatu.eth.v2.BeaconBlockDeneb - (*BeaconBlockElectra)(nil), // 20: xatu.eth.v2.BeaconBlockElectra - (*BeaconBlockFulu)(nil), // 21: xatu.eth.v2.BeaconBlockFulu - (*BlindedBeaconBlockCapella)(nil), // 22: xatu.eth.v2.BlindedBeaconBlockCapella - (*BlindedBeaconBlockCapellaV2)(nil), // 23: xatu.eth.v2.BlindedBeaconBlockCapellaV2 - (*BeaconBlockAltair)(nil), // 24: xatu.eth.v2.BeaconBlockAltair - (*BeaconBlockAltairV2)(nil), // 25: xatu.eth.v2.BeaconBlockAltairV2 - (*BeaconBlockBodyBellatrix)(nil), // 26: xatu.eth.v2.BeaconBlockBodyBellatrix - (*BeaconBlockBodyBellatrixV2)(nil), // 27: xatu.eth.v2.BeaconBlockBodyBellatrixV2 - (*BlindedBeaconBlockBodyBellatrix)(nil), // 28: xatu.eth.v2.BlindedBeaconBlockBodyBellatrix - (*BlindedBeaconBlockBodyBellatrixV2)(nil), // 29: xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2 - (*BeaconBlockBodyCapella)(nil), // 30: xatu.eth.v2.BeaconBlockBodyCapella - (*BeaconBlockBodyCapellaV2)(nil), // 31: xatu.eth.v2.BeaconBlockBodyCapellaV2 - (*BeaconBlockBodyDeneb)(nil), // 32: xatu.eth.v2.BeaconBlockBodyDeneb - (*BeaconBlockBodyElectra)(nil), // 33: xatu.eth.v2.BeaconBlockBodyElectra - (*BeaconBlockBodyFulu)(nil), // 34: xatu.eth.v2.BeaconBlockBodyFulu - (*BlindedBeaconBlockBodyCapella)(nil), // 35: xatu.eth.v2.BlindedBeaconBlockBodyCapella - (*BlindedBeaconBlockBodyCapellaV2)(nil), // 36: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2 - (*BeaconBlockBodyAltair)(nil), // 37: xatu.eth.v2.BeaconBlockBodyAltair - (*BeaconBlockBodyAltairV2)(nil), // 38: xatu.eth.v2.BeaconBlockBodyAltairV2 - (*wrapperspb.UInt64Value)(nil), // 39: google.protobuf.UInt64Value - (*v1.Eth1Data)(nil), // 40: xatu.eth.v1.Eth1Data - (*v1.ProposerSlashing)(nil), // 41: xatu.eth.v1.ProposerSlashing - (*v1.AttesterSlashing)(nil), // 42: xatu.eth.v1.AttesterSlashing - (*v1.Attestation)(nil), // 43: xatu.eth.v1.Attestation - (*v1.Deposit)(nil), // 44: xatu.eth.v1.Deposit - (*v1.SignedVoluntaryExit)(nil), // 45: xatu.eth.v1.SignedVoluntaryExit - (*v1.SyncAggregate)(nil), // 46: xatu.eth.v1.SyncAggregate - (*v1.ExecutionPayload)(nil), // 47: xatu.eth.v1.ExecutionPayload - (*v1.ExecutionPayloadV2)(nil), // 48: xatu.eth.v1.ExecutionPayloadV2 - (*v1.ExecutionPayloadHeader)(nil), // 49: xatu.eth.v1.ExecutionPayloadHeader - (*v1.ExecutionPayloadHeaderV2)(nil), // 50: xatu.eth.v1.ExecutionPayloadHeaderV2 - (*v1.ExecutionPayloadCapella)(nil), // 51: xatu.eth.v1.ExecutionPayloadCapella - (*SignedBLSToExecutionChange)(nil), // 52: xatu.eth.v2.SignedBLSToExecutionChange - (*v1.ExecutionPayloadCapellaV2)(nil), // 53: xatu.eth.v1.ExecutionPayloadCapellaV2 - (*v1.ExecutionPayloadDeneb)(nil), // 54: xatu.eth.v1.ExecutionPayloadDeneb - (*v1.ExecutionPayloadElectra)(nil), // 55: xatu.eth.v1.ExecutionPayloadElectra - (*v1.ElectraExecutionRequests)(nil), // 56: xatu.eth.v1.ElectraExecutionRequests - (*v1.ExecutionPayloadHeaderCapella)(nil), // 57: xatu.eth.v1.ExecutionPayloadHeaderCapella - (*v1.ExecutionPayloadHeaderCapellaV2)(nil), // 58: xatu.eth.v1.ExecutionPayloadHeaderCapellaV2 + (*SignedBeaconBlockGloas)(nil), // 7: xatu.eth.v2.SignedBeaconBlockGloas + (*SignedBlindedBeaconBlockBellatrix)(nil), // 8: xatu.eth.v2.SignedBlindedBeaconBlockBellatrix + (*SignedBlindedBeaconBlockBellatrixV2)(nil), // 9: xatu.eth.v2.SignedBlindedBeaconBlockBellatrixV2 + (*SignedBlindedBeaconBlockCapella)(nil), // 10: xatu.eth.v2.SignedBlindedBeaconBlockCapella + (*SignedBlindedBeaconBlockCapellaV2)(nil), // 11: xatu.eth.v2.SignedBlindedBeaconBlockCapellaV2 + (*SignedBeaconBlockAltair)(nil), // 12: xatu.eth.v2.SignedBeaconBlockAltair + (*SignedBeaconBlockAltairV2)(nil), // 13: xatu.eth.v2.SignedBeaconBlockAltairV2 + (*BeaconBlockBellatrix)(nil), // 14: xatu.eth.v2.BeaconBlockBellatrix + (*BeaconBlockBellatrixV2)(nil), // 15: xatu.eth.v2.BeaconBlockBellatrixV2 + (*BlindedBeaconBlockBellatrix)(nil), // 16: xatu.eth.v2.BlindedBeaconBlockBellatrix + (*BlindedBeaconBlockBellatrixV2)(nil), // 17: xatu.eth.v2.BlindedBeaconBlockBellatrixV2 + (*BeaconBlockCapella)(nil), // 18: xatu.eth.v2.BeaconBlockCapella + (*BeaconBlockCapellaV2)(nil), // 19: xatu.eth.v2.BeaconBlockCapellaV2 + (*BeaconBlockDeneb)(nil), // 20: xatu.eth.v2.BeaconBlockDeneb + (*BeaconBlockElectra)(nil), // 21: xatu.eth.v2.BeaconBlockElectra + (*BeaconBlockFulu)(nil), // 22: xatu.eth.v2.BeaconBlockFulu + (*BeaconBlockGloas)(nil), // 23: xatu.eth.v2.BeaconBlockGloas + (*BlindedBeaconBlockCapella)(nil), // 24: xatu.eth.v2.BlindedBeaconBlockCapella + (*BlindedBeaconBlockCapellaV2)(nil), // 25: xatu.eth.v2.BlindedBeaconBlockCapellaV2 + (*BeaconBlockAltair)(nil), // 26: xatu.eth.v2.BeaconBlockAltair + (*BeaconBlockAltairV2)(nil), // 27: xatu.eth.v2.BeaconBlockAltairV2 + (*BeaconBlockBodyBellatrix)(nil), // 28: xatu.eth.v2.BeaconBlockBodyBellatrix + (*BeaconBlockBodyBellatrixV2)(nil), // 29: xatu.eth.v2.BeaconBlockBodyBellatrixV2 + (*BlindedBeaconBlockBodyBellatrix)(nil), // 30: xatu.eth.v2.BlindedBeaconBlockBodyBellatrix + (*BlindedBeaconBlockBodyBellatrixV2)(nil), // 31: xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2 + (*BeaconBlockBodyCapella)(nil), // 32: xatu.eth.v2.BeaconBlockBodyCapella + (*BeaconBlockBodyCapellaV2)(nil), // 33: xatu.eth.v2.BeaconBlockBodyCapellaV2 + (*BeaconBlockBodyDeneb)(nil), // 34: xatu.eth.v2.BeaconBlockBodyDeneb + (*BeaconBlockBodyElectra)(nil), // 35: xatu.eth.v2.BeaconBlockBodyElectra + (*BeaconBlockBodyFulu)(nil), // 36: xatu.eth.v2.BeaconBlockBodyFulu + (*BeaconBlockBodyGloas)(nil), // 37: xatu.eth.v2.BeaconBlockBodyGloas + (*BlindedBeaconBlockBodyCapella)(nil), // 38: xatu.eth.v2.BlindedBeaconBlockBodyCapella + (*BlindedBeaconBlockBodyCapellaV2)(nil), // 39: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2 + (*BeaconBlockBodyAltair)(nil), // 40: xatu.eth.v2.BeaconBlockBodyAltair + (*BeaconBlockBodyAltairV2)(nil), // 41: xatu.eth.v2.BeaconBlockBodyAltairV2 + (*wrapperspb.UInt64Value)(nil), // 42: google.protobuf.UInt64Value + (*v1.Eth1Data)(nil), // 43: xatu.eth.v1.Eth1Data + (*v1.ProposerSlashing)(nil), // 44: xatu.eth.v1.ProposerSlashing + (*v1.AttesterSlashing)(nil), // 45: xatu.eth.v1.AttesterSlashing + (*v1.Attestation)(nil), // 46: xatu.eth.v1.Attestation + (*v1.Deposit)(nil), // 47: xatu.eth.v1.Deposit + (*v1.SignedVoluntaryExit)(nil), // 48: xatu.eth.v1.SignedVoluntaryExit + (*v1.SyncAggregate)(nil), // 49: xatu.eth.v1.SyncAggregate + (*v1.ExecutionPayload)(nil), // 50: xatu.eth.v1.ExecutionPayload + (*v1.ExecutionPayloadV2)(nil), // 51: xatu.eth.v1.ExecutionPayloadV2 + (*v1.ExecutionPayloadHeader)(nil), // 52: xatu.eth.v1.ExecutionPayloadHeader + (*v1.ExecutionPayloadHeaderV2)(nil), // 53: xatu.eth.v1.ExecutionPayloadHeaderV2 + (*v1.ExecutionPayloadCapella)(nil), // 54: xatu.eth.v1.ExecutionPayloadCapella + (*SignedBLSToExecutionChange)(nil), // 55: xatu.eth.v2.SignedBLSToExecutionChange + (*v1.ExecutionPayloadCapellaV2)(nil), // 56: xatu.eth.v1.ExecutionPayloadCapellaV2 + (*v1.ExecutionPayloadDeneb)(nil), // 57: xatu.eth.v1.ExecutionPayloadDeneb + (*v1.ExecutionPayloadElectra)(nil), // 58: xatu.eth.v1.ExecutionPayloadElectra + (*v1.ElectraExecutionRequests)(nil), // 59: xatu.eth.v1.ElectraExecutionRequests + (*v1.ExecutionPayloadGloas)(nil), // 60: xatu.eth.v1.ExecutionPayloadGloas + (*v1.ExecutionPayloadHeaderCapella)(nil), // 61: xatu.eth.v1.ExecutionPayloadHeaderCapella + (*v1.ExecutionPayloadHeaderCapellaV2)(nil), // 62: xatu.eth.v1.ExecutionPayloadHeaderCapellaV2 } var file_pkg_proto_eth_v2_beacon_block_proto_depIdxs = []int32{ - 13, // 0: xatu.eth.v2.SignedBeaconBlockBellatrix.message:type_name -> xatu.eth.v2.BeaconBlockBellatrix - 14, // 1: xatu.eth.v2.SignedBeaconBlockBellatrixV2.message:type_name -> xatu.eth.v2.BeaconBlockBellatrixV2 - 17, // 2: xatu.eth.v2.SignedBeaconBlockCapella.message:type_name -> xatu.eth.v2.BeaconBlockCapella - 18, // 3: xatu.eth.v2.SignedBeaconBlockCapellaV2.message:type_name -> xatu.eth.v2.BeaconBlockCapellaV2 - 19, // 4: xatu.eth.v2.SignedBeaconBlockDeneb.message:type_name -> xatu.eth.v2.BeaconBlockDeneb - 20, // 5: xatu.eth.v2.SignedBeaconBlockElectra.message:type_name -> xatu.eth.v2.BeaconBlockElectra - 21, // 6: xatu.eth.v2.SignedBeaconBlockFulu.message:type_name -> xatu.eth.v2.BeaconBlockFulu - 15, // 7: xatu.eth.v2.SignedBlindedBeaconBlockBellatrix.message:type_name -> xatu.eth.v2.BlindedBeaconBlockBellatrix - 16, // 8: xatu.eth.v2.SignedBlindedBeaconBlockBellatrixV2.message:type_name -> xatu.eth.v2.BlindedBeaconBlockBellatrixV2 - 22, // 9: xatu.eth.v2.SignedBlindedBeaconBlockCapella.message:type_name -> xatu.eth.v2.BlindedBeaconBlockCapella - 23, // 10: xatu.eth.v2.SignedBlindedBeaconBlockCapellaV2.message:type_name -> xatu.eth.v2.BlindedBeaconBlockCapellaV2 - 24, // 11: xatu.eth.v2.SignedBeaconBlockAltair.message:type_name -> xatu.eth.v2.BeaconBlockAltair - 25, // 12: xatu.eth.v2.SignedBeaconBlockAltairV2.message:type_name -> xatu.eth.v2.BeaconBlockAltairV2 - 26, // 13: xatu.eth.v2.BeaconBlockBellatrix.body:type_name -> xatu.eth.v2.BeaconBlockBodyBellatrix - 39, // 14: xatu.eth.v2.BeaconBlockBellatrixV2.slot:type_name -> google.protobuf.UInt64Value - 39, // 15: xatu.eth.v2.BeaconBlockBellatrixV2.proposer_index:type_name -> google.protobuf.UInt64Value - 27, // 16: xatu.eth.v2.BeaconBlockBellatrixV2.body:type_name -> xatu.eth.v2.BeaconBlockBodyBellatrixV2 - 28, // 17: xatu.eth.v2.BlindedBeaconBlockBellatrix.body:type_name -> xatu.eth.v2.BlindedBeaconBlockBodyBellatrix - 39, // 18: xatu.eth.v2.BlindedBeaconBlockBellatrixV2.slot:type_name -> google.protobuf.UInt64Value - 39, // 19: xatu.eth.v2.BlindedBeaconBlockBellatrixV2.proposer_index:type_name -> google.protobuf.UInt64Value - 29, // 20: xatu.eth.v2.BlindedBeaconBlockBellatrixV2.body:type_name -> xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2 - 30, // 21: xatu.eth.v2.BeaconBlockCapella.body:type_name -> xatu.eth.v2.BeaconBlockBodyCapella - 39, // 22: xatu.eth.v2.BeaconBlockCapellaV2.slot:type_name -> google.protobuf.UInt64Value - 39, // 23: xatu.eth.v2.BeaconBlockCapellaV2.proposer_index:type_name -> google.protobuf.UInt64Value - 31, // 24: xatu.eth.v2.BeaconBlockCapellaV2.body:type_name -> xatu.eth.v2.BeaconBlockBodyCapellaV2 - 39, // 25: xatu.eth.v2.BeaconBlockDeneb.slot:type_name -> google.protobuf.UInt64Value - 39, // 26: xatu.eth.v2.BeaconBlockDeneb.proposer_index:type_name -> google.protobuf.UInt64Value - 32, // 27: xatu.eth.v2.BeaconBlockDeneb.body:type_name -> xatu.eth.v2.BeaconBlockBodyDeneb - 39, // 28: xatu.eth.v2.BeaconBlockElectra.slot:type_name -> google.protobuf.UInt64Value - 39, // 29: xatu.eth.v2.BeaconBlockElectra.proposer_index:type_name -> google.protobuf.UInt64Value - 33, // 30: xatu.eth.v2.BeaconBlockElectra.body:type_name -> xatu.eth.v2.BeaconBlockBodyElectra - 39, // 31: xatu.eth.v2.BeaconBlockFulu.slot:type_name -> google.protobuf.UInt64Value - 39, // 32: xatu.eth.v2.BeaconBlockFulu.proposer_index:type_name -> google.protobuf.UInt64Value - 34, // 33: xatu.eth.v2.BeaconBlockFulu.body:type_name -> xatu.eth.v2.BeaconBlockBodyFulu - 35, // 34: xatu.eth.v2.BlindedBeaconBlockCapella.body:type_name -> xatu.eth.v2.BlindedBeaconBlockBodyCapella - 39, // 35: xatu.eth.v2.BlindedBeaconBlockCapellaV2.slot:type_name -> google.protobuf.UInt64Value - 39, // 36: xatu.eth.v2.BlindedBeaconBlockCapellaV2.proposer_index:type_name -> google.protobuf.UInt64Value - 36, // 37: xatu.eth.v2.BlindedBeaconBlockCapellaV2.body:type_name -> xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2 - 37, // 38: xatu.eth.v2.BeaconBlockAltair.body:type_name -> xatu.eth.v2.BeaconBlockBodyAltair - 39, // 39: xatu.eth.v2.BeaconBlockAltairV2.slot:type_name -> google.protobuf.UInt64Value - 39, // 40: xatu.eth.v2.BeaconBlockAltairV2.proposer_index:type_name -> google.protobuf.UInt64Value - 38, // 41: xatu.eth.v2.BeaconBlockAltairV2.body:type_name -> xatu.eth.v2.BeaconBlockBodyAltairV2 - 40, // 42: xatu.eth.v2.BeaconBlockBodyBellatrix.eth1_data:type_name -> xatu.eth.v1.Eth1Data - 41, // 43: xatu.eth.v2.BeaconBlockBodyBellatrix.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing - 42, // 44: xatu.eth.v2.BeaconBlockBodyBellatrix.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing - 43, // 45: xatu.eth.v2.BeaconBlockBodyBellatrix.attestations:type_name -> xatu.eth.v1.Attestation - 44, // 46: xatu.eth.v2.BeaconBlockBodyBellatrix.deposits:type_name -> xatu.eth.v1.Deposit - 45, // 47: xatu.eth.v2.BeaconBlockBodyBellatrix.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit - 46, // 48: xatu.eth.v2.BeaconBlockBodyBellatrix.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate - 47, // 49: xatu.eth.v2.BeaconBlockBodyBellatrix.execution_payload:type_name -> xatu.eth.v1.ExecutionPayload - 40, // 50: xatu.eth.v2.BeaconBlockBodyBellatrixV2.eth1_data:type_name -> xatu.eth.v1.Eth1Data - 41, // 51: xatu.eth.v2.BeaconBlockBodyBellatrixV2.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing - 42, // 52: xatu.eth.v2.BeaconBlockBodyBellatrixV2.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing - 43, // 53: xatu.eth.v2.BeaconBlockBodyBellatrixV2.attestations:type_name -> xatu.eth.v1.Attestation - 44, // 54: xatu.eth.v2.BeaconBlockBodyBellatrixV2.deposits:type_name -> xatu.eth.v1.Deposit - 45, // 55: xatu.eth.v2.BeaconBlockBodyBellatrixV2.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit - 46, // 56: xatu.eth.v2.BeaconBlockBodyBellatrixV2.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate - 48, // 57: xatu.eth.v2.BeaconBlockBodyBellatrixV2.execution_payload:type_name -> xatu.eth.v1.ExecutionPayloadV2 - 40, // 58: xatu.eth.v2.BlindedBeaconBlockBodyBellatrix.eth1_data:type_name -> xatu.eth.v1.Eth1Data - 41, // 59: xatu.eth.v2.BlindedBeaconBlockBodyBellatrix.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing - 42, // 60: xatu.eth.v2.BlindedBeaconBlockBodyBellatrix.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing - 43, // 61: xatu.eth.v2.BlindedBeaconBlockBodyBellatrix.attestations:type_name -> xatu.eth.v1.Attestation - 44, // 62: xatu.eth.v2.BlindedBeaconBlockBodyBellatrix.deposits:type_name -> xatu.eth.v1.Deposit - 45, // 63: xatu.eth.v2.BlindedBeaconBlockBodyBellatrix.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit - 46, // 64: xatu.eth.v2.BlindedBeaconBlockBodyBellatrix.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate - 49, // 65: xatu.eth.v2.BlindedBeaconBlockBodyBellatrix.execution_payload_header:type_name -> xatu.eth.v1.ExecutionPayloadHeader - 40, // 66: xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2.eth1_data:type_name -> xatu.eth.v1.Eth1Data - 41, // 67: xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing - 42, // 68: xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing - 43, // 69: xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2.attestations:type_name -> xatu.eth.v1.Attestation - 44, // 70: xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2.deposits:type_name -> xatu.eth.v1.Deposit - 45, // 71: xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit - 46, // 72: xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate - 50, // 73: xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2.execution_payload_header:type_name -> xatu.eth.v1.ExecutionPayloadHeaderV2 - 40, // 74: xatu.eth.v2.BeaconBlockBodyCapella.eth1_data:type_name -> xatu.eth.v1.Eth1Data - 41, // 75: xatu.eth.v2.BeaconBlockBodyCapella.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing - 42, // 76: xatu.eth.v2.BeaconBlockBodyCapella.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing - 43, // 77: xatu.eth.v2.BeaconBlockBodyCapella.attestations:type_name -> xatu.eth.v1.Attestation - 44, // 78: xatu.eth.v2.BeaconBlockBodyCapella.deposits:type_name -> xatu.eth.v1.Deposit - 45, // 79: xatu.eth.v2.BeaconBlockBodyCapella.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit - 46, // 80: xatu.eth.v2.BeaconBlockBodyCapella.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate - 51, // 81: xatu.eth.v2.BeaconBlockBodyCapella.execution_payload:type_name -> xatu.eth.v1.ExecutionPayloadCapella - 52, // 82: xatu.eth.v2.BeaconBlockBodyCapella.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange - 40, // 83: xatu.eth.v2.BeaconBlockBodyCapellaV2.eth1_data:type_name -> xatu.eth.v1.Eth1Data - 41, // 84: xatu.eth.v2.BeaconBlockBodyCapellaV2.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing - 42, // 85: xatu.eth.v2.BeaconBlockBodyCapellaV2.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing - 43, // 86: xatu.eth.v2.BeaconBlockBodyCapellaV2.attestations:type_name -> xatu.eth.v1.Attestation - 44, // 87: xatu.eth.v2.BeaconBlockBodyCapellaV2.deposits:type_name -> xatu.eth.v1.Deposit - 45, // 88: xatu.eth.v2.BeaconBlockBodyCapellaV2.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit - 46, // 89: xatu.eth.v2.BeaconBlockBodyCapellaV2.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate - 53, // 90: xatu.eth.v2.BeaconBlockBodyCapellaV2.execution_payload:type_name -> xatu.eth.v1.ExecutionPayloadCapellaV2 - 52, // 91: xatu.eth.v2.BeaconBlockBodyCapellaV2.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange - 40, // 92: xatu.eth.v2.BeaconBlockBodyDeneb.eth1_data:type_name -> xatu.eth.v1.Eth1Data - 41, // 93: xatu.eth.v2.BeaconBlockBodyDeneb.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing - 42, // 94: xatu.eth.v2.BeaconBlockBodyDeneb.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing - 43, // 95: xatu.eth.v2.BeaconBlockBodyDeneb.attestations:type_name -> xatu.eth.v1.Attestation - 44, // 96: xatu.eth.v2.BeaconBlockBodyDeneb.deposits:type_name -> xatu.eth.v1.Deposit - 45, // 97: xatu.eth.v2.BeaconBlockBodyDeneb.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit - 46, // 98: xatu.eth.v2.BeaconBlockBodyDeneb.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate - 54, // 99: xatu.eth.v2.BeaconBlockBodyDeneb.execution_payload:type_name -> xatu.eth.v1.ExecutionPayloadDeneb - 52, // 100: xatu.eth.v2.BeaconBlockBodyDeneb.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange - 40, // 101: xatu.eth.v2.BeaconBlockBodyElectra.eth1_data:type_name -> xatu.eth.v1.Eth1Data - 41, // 102: xatu.eth.v2.BeaconBlockBodyElectra.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing - 42, // 103: xatu.eth.v2.BeaconBlockBodyElectra.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing - 43, // 104: xatu.eth.v2.BeaconBlockBodyElectra.attestations:type_name -> xatu.eth.v1.Attestation - 44, // 105: xatu.eth.v2.BeaconBlockBodyElectra.deposits:type_name -> xatu.eth.v1.Deposit - 45, // 106: xatu.eth.v2.BeaconBlockBodyElectra.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit - 46, // 107: xatu.eth.v2.BeaconBlockBodyElectra.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate - 55, // 108: xatu.eth.v2.BeaconBlockBodyElectra.execution_payload:type_name -> xatu.eth.v1.ExecutionPayloadElectra - 52, // 109: xatu.eth.v2.BeaconBlockBodyElectra.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange - 56, // 110: xatu.eth.v2.BeaconBlockBodyElectra.execution_requests:type_name -> xatu.eth.v1.ElectraExecutionRequests - 40, // 111: xatu.eth.v2.BeaconBlockBodyFulu.eth1_data:type_name -> xatu.eth.v1.Eth1Data - 41, // 112: xatu.eth.v2.BeaconBlockBodyFulu.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing - 42, // 113: xatu.eth.v2.BeaconBlockBodyFulu.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing - 43, // 114: xatu.eth.v2.BeaconBlockBodyFulu.attestations:type_name -> xatu.eth.v1.Attestation - 44, // 115: xatu.eth.v2.BeaconBlockBodyFulu.deposits:type_name -> xatu.eth.v1.Deposit - 45, // 116: xatu.eth.v2.BeaconBlockBodyFulu.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit - 46, // 117: xatu.eth.v2.BeaconBlockBodyFulu.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate - 55, // 118: xatu.eth.v2.BeaconBlockBodyFulu.execution_payload:type_name -> xatu.eth.v1.ExecutionPayloadElectra - 52, // 119: xatu.eth.v2.BeaconBlockBodyFulu.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange - 56, // 120: xatu.eth.v2.BeaconBlockBodyFulu.execution_requests:type_name -> xatu.eth.v1.ElectraExecutionRequests - 40, // 121: xatu.eth.v2.BlindedBeaconBlockBodyCapella.eth1_data:type_name -> xatu.eth.v1.Eth1Data - 41, // 122: xatu.eth.v2.BlindedBeaconBlockBodyCapella.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing - 42, // 123: xatu.eth.v2.BlindedBeaconBlockBodyCapella.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing - 43, // 124: xatu.eth.v2.BlindedBeaconBlockBodyCapella.attestations:type_name -> xatu.eth.v1.Attestation - 44, // 125: xatu.eth.v2.BlindedBeaconBlockBodyCapella.deposits:type_name -> xatu.eth.v1.Deposit - 45, // 126: xatu.eth.v2.BlindedBeaconBlockBodyCapella.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit - 46, // 127: xatu.eth.v2.BlindedBeaconBlockBodyCapella.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate - 57, // 128: xatu.eth.v2.BlindedBeaconBlockBodyCapella.execution_payload_header:type_name -> xatu.eth.v1.ExecutionPayloadHeaderCapella - 52, // 129: xatu.eth.v2.BlindedBeaconBlockBodyCapella.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange - 40, // 130: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.eth1_data:type_name -> xatu.eth.v1.Eth1Data - 41, // 131: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing - 42, // 132: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing - 43, // 133: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.attestations:type_name -> xatu.eth.v1.Attestation - 44, // 134: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.deposits:type_name -> xatu.eth.v1.Deposit - 45, // 135: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit - 46, // 136: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate - 58, // 137: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.execution_payload_header:type_name -> xatu.eth.v1.ExecutionPayloadHeaderCapellaV2 - 52, // 138: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange - 40, // 139: xatu.eth.v2.BeaconBlockBodyAltair.eth1_data:type_name -> xatu.eth.v1.Eth1Data - 41, // 140: xatu.eth.v2.BeaconBlockBodyAltair.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing - 42, // 141: xatu.eth.v2.BeaconBlockBodyAltair.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing - 43, // 142: xatu.eth.v2.BeaconBlockBodyAltair.attestations:type_name -> xatu.eth.v1.Attestation - 44, // 143: xatu.eth.v2.BeaconBlockBodyAltair.deposits:type_name -> xatu.eth.v1.Deposit - 45, // 144: xatu.eth.v2.BeaconBlockBodyAltair.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit - 46, // 145: xatu.eth.v2.BeaconBlockBodyAltair.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate - 40, // 146: xatu.eth.v2.BeaconBlockBodyAltairV2.eth1_data:type_name -> xatu.eth.v1.Eth1Data - 41, // 147: xatu.eth.v2.BeaconBlockBodyAltairV2.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing - 42, // 148: xatu.eth.v2.BeaconBlockBodyAltairV2.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing - 43, // 149: xatu.eth.v2.BeaconBlockBodyAltairV2.attestations:type_name -> xatu.eth.v1.Attestation - 44, // 150: xatu.eth.v2.BeaconBlockBodyAltairV2.deposits:type_name -> xatu.eth.v1.Deposit - 45, // 151: xatu.eth.v2.BeaconBlockBodyAltairV2.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit - 46, // 152: xatu.eth.v2.BeaconBlockBodyAltairV2.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate - 153, // [153:153] is the sub-list for method output_type - 153, // [153:153] is the sub-list for method input_type - 153, // [153:153] is the sub-list for extension type_name - 153, // [153:153] is the sub-list for extension extendee - 0, // [0:153] is the sub-list for field type_name + 14, // 0: xatu.eth.v2.SignedBeaconBlockBellatrix.message:type_name -> xatu.eth.v2.BeaconBlockBellatrix + 15, // 1: xatu.eth.v2.SignedBeaconBlockBellatrixV2.message:type_name -> xatu.eth.v2.BeaconBlockBellatrixV2 + 18, // 2: xatu.eth.v2.SignedBeaconBlockCapella.message:type_name -> xatu.eth.v2.BeaconBlockCapella + 19, // 3: xatu.eth.v2.SignedBeaconBlockCapellaV2.message:type_name -> xatu.eth.v2.BeaconBlockCapellaV2 + 20, // 4: xatu.eth.v2.SignedBeaconBlockDeneb.message:type_name -> xatu.eth.v2.BeaconBlockDeneb + 21, // 5: xatu.eth.v2.SignedBeaconBlockElectra.message:type_name -> xatu.eth.v2.BeaconBlockElectra + 22, // 6: xatu.eth.v2.SignedBeaconBlockFulu.message:type_name -> xatu.eth.v2.BeaconBlockFulu + 23, // 7: xatu.eth.v2.SignedBeaconBlockGloas.message:type_name -> xatu.eth.v2.BeaconBlockGloas + 16, // 8: xatu.eth.v2.SignedBlindedBeaconBlockBellatrix.message:type_name -> xatu.eth.v2.BlindedBeaconBlockBellatrix + 17, // 9: xatu.eth.v2.SignedBlindedBeaconBlockBellatrixV2.message:type_name -> xatu.eth.v2.BlindedBeaconBlockBellatrixV2 + 24, // 10: xatu.eth.v2.SignedBlindedBeaconBlockCapella.message:type_name -> xatu.eth.v2.BlindedBeaconBlockCapella + 25, // 11: xatu.eth.v2.SignedBlindedBeaconBlockCapellaV2.message:type_name -> xatu.eth.v2.BlindedBeaconBlockCapellaV2 + 26, // 12: xatu.eth.v2.SignedBeaconBlockAltair.message:type_name -> xatu.eth.v2.BeaconBlockAltair + 27, // 13: xatu.eth.v2.SignedBeaconBlockAltairV2.message:type_name -> xatu.eth.v2.BeaconBlockAltairV2 + 28, // 14: xatu.eth.v2.BeaconBlockBellatrix.body:type_name -> xatu.eth.v2.BeaconBlockBodyBellatrix + 42, // 15: xatu.eth.v2.BeaconBlockBellatrixV2.slot:type_name -> google.protobuf.UInt64Value + 42, // 16: xatu.eth.v2.BeaconBlockBellatrixV2.proposer_index:type_name -> google.protobuf.UInt64Value + 29, // 17: xatu.eth.v2.BeaconBlockBellatrixV2.body:type_name -> xatu.eth.v2.BeaconBlockBodyBellatrixV2 + 30, // 18: xatu.eth.v2.BlindedBeaconBlockBellatrix.body:type_name -> xatu.eth.v2.BlindedBeaconBlockBodyBellatrix + 42, // 19: xatu.eth.v2.BlindedBeaconBlockBellatrixV2.slot:type_name -> google.protobuf.UInt64Value + 42, // 20: xatu.eth.v2.BlindedBeaconBlockBellatrixV2.proposer_index:type_name -> google.protobuf.UInt64Value + 31, // 21: xatu.eth.v2.BlindedBeaconBlockBellatrixV2.body:type_name -> xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2 + 32, // 22: xatu.eth.v2.BeaconBlockCapella.body:type_name -> xatu.eth.v2.BeaconBlockBodyCapella + 42, // 23: xatu.eth.v2.BeaconBlockCapellaV2.slot:type_name -> google.protobuf.UInt64Value + 42, // 24: xatu.eth.v2.BeaconBlockCapellaV2.proposer_index:type_name -> google.protobuf.UInt64Value + 33, // 25: xatu.eth.v2.BeaconBlockCapellaV2.body:type_name -> xatu.eth.v2.BeaconBlockBodyCapellaV2 + 42, // 26: xatu.eth.v2.BeaconBlockDeneb.slot:type_name -> google.protobuf.UInt64Value + 42, // 27: xatu.eth.v2.BeaconBlockDeneb.proposer_index:type_name -> google.protobuf.UInt64Value + 34, // 28: xatu.eth.v2.BeaconBlockDeneb.body:type_name -> xatu.eth.v2.BeaconBlockBodyDeneb + 42, // 29: xatu.eth.v2.BeaconBlockElectra.slot:type_name -> google.protobuf.UInt64Value + 42, // 30: xatu.eth.v2.BeaconBlockElectra.proposer_index:type_name -> google.protobuf.UInt64Value + 35, // 31: xatu.eth.v2.BeaconBlockElectra.body:type_name -> xatu.eth.v2.BeaconBlockBodyElectra + 42, // 32: xatu.eth.v2.BeaconBlockFulu.slot:type_name -> google.protobuf.UInt64Value + 42, // 33: xatu.eth.v2.BeaconBlockFulu.proposer_index:type_name -> google.protobuf.UInt64Value + 36, // 34: xatu.eth.v2.BeaconBlockFulu.body:type_name -> xatu.eth.v2.BeaconBlockBodyFulu + 42, // 35: xatu.eth.v2.BeaconBlockGloas.slot:type_name -> google.protobuf.UInt64Value + 42, // 36: xatu.eth.v2.BeaconBlockGloas.proposer_index:type_name -> google.protobuf.UInt64Value + 37, // 37: xatu.eth.v2.BeaconBlockGloas.body:type_name -> xatu.eth.v2.BeaconBlockBodyGloas + 38, // 38: xatu.eth.v2.BlindedBeaconBlockCapella.body:type_name -> xatu.eth.v2.BlindedBeaconBlockBodyCapella + 42, // 39: xatu.eth.v2.BlindedBeaconBlockCapellaV2.slot:type_name -> google.protobuf.UInt64Value + 42, // 40: xatu.eth.v2.BlindedBeaconBlockCapellaV2.proposer_index:type_name -> google.protobuf.UInt64Value + 39, // 41: xatu.eth.v2.BlindedBeaconBlockCapellaV2.body:type_name -> xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2 + 40, // 42: xatu.eth.v2.BeaconBlockAltair.body:type_name -> xatu.eth.v2.BeaconBlockBodyAltair + 42, // 43: xatu.eth.v2.BeaconBlockAltairV2.slot:type_name -> google.protobuf.UInt64Value + 42, // 44: xatu.eth.v2.BeaconBlockAltairV2.proposer_index:type_name -> google.protobuf.UInt64Value + 41, // 45: xatu.eth.v2.BeaconBlockAltairV2.body:type_name -> xatu.eth.v2.BeaconBlockBodyAltairV2 + 43, // 46: xatu.eth.v2.BeaconBlockBodyBellatrix.eth1_data:type_name -> xatu.eth.v1.Eth1Data + 44, // 47: xatu.eth.v2.BeaconBlockBodyBellatrix.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing + 45, // 48: xatu.eth.v2.BeaconBlockBodyBellatrix.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing + 46, // 49: xatu.eth.v2.BeaconBlockBodyBellatrix.attestations:type_name -> xatu.eth.v1.Attestation + 47, // 50: xatu.eth.v2.BeaconBlockBodyBellatrix.deposits:type_name -> xatu.eth.v1.Deposit + 48, // 51: xatu.eth.v2.BeaconBlockBodyBellatrix.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit + 49, // 52: xatu.eth.v2.BeaconBlockBodyBellatrix.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate + 50, // 53: xatu.eth.v2.BeaconBlockBodyBellatrix.execution_payload:type_name -> xatu.eth.v1.ExecutionPayload + 43, // 54: xatu.eth.v2.BeaconBlockBodyBellatrixV2.eth1_data:type_name -> xatu.eth.v1.Eth1Data + 44, // 55: xatu.eth.v2.BeaconBlockBodyBellatrixV2.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing + 45, // 56: xatu.eth.v2.BeaconBlockBodyBellatrixV2.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing + 46, // 57: xatu.eth.v2.BeaconBlockBodyBellatrixV2.attestations:type_name -> xatu.eth.v1.Attestation + 47, // 58: xatu.eth.v2.BeaconBlockBodyBellatrixV2.deposits:type_name -> xatu.eth.v1.Deposit + 48, // 59: xatu.eth.v2.BeaconBlockBodyBellatrixV2.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit + 49, // 60: xatu.eth.v2.BeaconBlockBodyBellatrixV2.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate + 51, // 61: xatu.eth.v2.BeaconBlockBodyBellatrixV2.execution_payload:type_name -> xatu.eth.v1.ExecutionPayloadV2 + 43, // 62: xatu.eth.v2.BlindedBeaconBlockBodyBellatrix.eth1_data:type_name -> xatu.eth.v1.Eth1Data + 44, // 63: xatu.eth.v2.BlindedBeaconBlockBodyBellatrix.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing + 45, // 64: xatu.eth.v2.BlindedBeaconBlockBodyBellatrix.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing + 46, // 65: xatu.eth.v2.BlindedBeaconBlockBodyBellatrix.attestations:type_name -> xatu.eth.v1.Attestation + 47, // 66: xatu.eth.v2.BlindedBeaconBlockBodyBellatrix.deposits:type_name -> xatu.eth.v1.Deposit + 48, // 67: xatu.eth.v2.BlindedBeaconBlockBodyBellatrix.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit + 49, // 68: xatu.eth.v2.BlindedBeaconBlockBodyBellatrix.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate + 52, // 69: xatu.eth.v2.BlindedBeaconBlockBodyBellatrix.execution_payload_header:type_name -> xatu.eth.v1.ExecutionPayloadHeader + 43, // 70: xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2.eth1_data:type_name -> xatu.eth.v1.Eth1Data + 44, // 71: xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing + 45, // 72: xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing + 46, // 73: xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2.attestations:type_name -> xatu.eth.v1.Attestation + 47, // 74: xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2.deposits:type_name -> xatu.eth.v1.Deposit + 48, // 75: xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit + 49, // 76: xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate + 53, // 77: xatu.eth.v2.BlindedBeaconBlockBodyBellatrixV2.execution_payload_header:type_name -> xatu.eth.v1.ExecutionPayloadHeaderV2 + 43, // 78: xatu.eth.v2.BeaconBlockBodyCapella.eth1_data:type_name -> xatu.eth.v1.Eth1Data + 44, // 79: xatu.eth.v2.BeaconBlockBodyCapella.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing + 45, // 80: xatu.eth.v2.BeaconBlockBodyCapella.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing + 46, // 81: xatu.eth.v2.BeaconBlockBodyCapella.attestations:type_name -> xatu.eth.v1.Attestation + 47, // 82: xatu.eth.v2.BeaconBlockBodyCapella.deposits:type_name -> xatu.eth.v1.Deposit + 48, // 83: xatu.eth.v2.BeaconBlockBodyCapella.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit + 49, // 84: xatu.eth.v2.BeaconBlockBodyCapella.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate + 54, // 85: xatu.eth.v2.BeaconBlockBodyCapella.execution_payload:type_name -> xatu.eth.v1.ExecutionPayloadCapella + 55, // 86: xatu.eth.v2.BeaconBlockBodyCapella.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange + 43, // 87: xatu.eth.v2.BeaconBlockBodyCapellaV2.eth1_data:type_name -> xatu.eth.v1.Eth1Data + 44, // 88: xatu.eth.v2.BeaconBlockBodyCapellaV2.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing + 45, // 89: xatu.eth.v2.BeaconBlockBodyCapellaV2.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing + 46, // 90: xatu.eth.v2.BeaconBlockBodyCapellaV2.attestations:type_name -> xatu.eth.v1.Attestation + 47, // 91: xatu.eth.v2.BeaconBlockBodyCapellaV2.deposits:type_name -> xatu.eth.v1.Deposit + 48, // 92: xatu.eth.v2.BeaconBlockBodyCapellaV2.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit + 49, // 93: xatu.eth.v2.BeaconBlockBodyCapellaV2.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate + 56, // 94: xatu.eth.v2.BeaconBlockBodyCapellaV2.execution_payload:type_name -> xatu.eth.v1.ExecutionPayloadCapellaV2 + 55, // 95: xatu.eth.v2.BeaconBlockBodyCapellaV2.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange + 43, // 96: xatu.eth.v2.BeaconBlockBodyDeneb.eth1_data:type_name -> xatu.eth.v1.Eth1Data + 44, // 97: xatu.eth.v2.BeaconBlockBodyDeneb.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing + 45, // 98: xatu.eth.v2.BeaconBlockBodyDeneb.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing + 46, // 99: xatu.eth.v2.BeaconBlockBodyDeneb.attestations:type_name -> xatu.eth.v1.Attestation + 47, // 100: xatu.eth.v2.BeaconBlockBodyDeneb.deposits:type_name -> xatu.eth.v1.Deposit + 48, // 101: xatu.eth.v2.BeaconBlockBodyDeneb.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit + 49, // 102: xatu.eth.v2.BeaconBlockBodyDeneb.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate + 57, // 103: xatu.eth.v2.BeaconBlockBodyDeneb.execution_payload:type_name -> xatu.eth.v1.ExecutionPayloadDeneb + 55, // 104: xatu.eth.v2.BeaconBlockBodyDeneb.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange + 43, // 105: xatu.eth.v2.BeaconBlockBodyElectra.eth1_data:type_name -> xatu.eth.v1.Eth1Data + 44, // 106: xatu.eth.v2.BeaconBlockBodyElectra.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing + 45, // 107: xatu.eth.v2.BeaconBlockBodyElectra.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing + 46, // 108: xatu.eth.v2.BeaconBlockBodyElectra.attestations:type_name -> xatu.eth.v1.Attestation + 47, // 109: xatu.eth.v2.BeaconBlockBodyElectra.deposits:type_name -> xatu.eth.v1.Deposit + 48, // 110: xatu.eth.v2.BeaconBlockBodyElectra.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit + 49, // 111: xatu.eth.v2.BeaconBlockBodyElectra.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate + 58, // 112: xatu.eth.v2.BeaconBlockBodyElectra.execution_payload:type_name -> xatu.eth.v1.ExecutionPayloadElectra + 55, // 113: xatu.eth.v2.BeaconBlockBodyElectra.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange + 59, // 114: xatu.eth.v2.BeaconBlockBodyElectra.execution_requests:type_name -> xatu.eth.v1.ElectraExecutionRequests + 43, // 115: xatu.eth.v2.BeaconBlockBodyFulu.eth1_data:type_name -> xatu.eth.v1.Eth1Data + 44, // 116: xatu.eth.v2.BeaconBlockBodyFulu.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing + 45, // 117: xatu.eth.v2.BeaconBlockBodyFulu.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing + 46, // 118: xatu.eth.v2.BeaconBlockBodyFulu.attestations:type_name -> xatu.eth.v1.Attestation + 47, // 119: xatu.eth.v2.BeaconBlockBodyFulu.deposits:type_name -> xatu.eth.v1.Deposit + 48, // 120: xatu.eth.v2.BeaconBlockBodyFulu.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit + 49, // 121: xatu.eth.v2.BeaconBlockBodyFulu.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate + 58, // 122: xatu.eth.v2.BeaconBlockBodyFulu.execution_payload:type_name -> xatu.eth.v1.ExecutionPayloadElectra + 55, // 123: xatu.eth.v2.BeaconBlockBodyFulu.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange + 59, // 124: xatu.eth.v2.BeaconBlockBodyFulu.execution_requests:type_name -> xatu.eth.v1.ElectraExecutionRequests + 43, // 125: xatu.eth.v2.BeaconBlockBodyGloas.eth1_data:type_name -> xatu.eth.v1.Eth1Data + 44, // 126: xatu.eth.v2.BeaconBlockBodyGloas.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing + 45, // 127: xatu.eth.v2.BeaconBlockBodyGloas.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing + 46, // 128: xatu.eth.v2.BeaconBlockBodyGloas.attestations:type_name -> xatu.eth.v1.Attestation + 47, // 129: xatu.eth.v2.BeaconBlockBodyGloas.deposits:type_name -> xatu.eth.v1.Deposit + 48, // 130: xatu.eth.v2.BeaconBlockBodyGloas.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit + 49, // 131: xatu.eth.v2.BeaconBlockBodyGloas.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate + 60, // 132: xatu.eth.v2.BeaconBlockBodyGloas.execution_payload:type_name -> xatu.eth.v1.ExecutionPayloadGloas + 55, // 133: xatu.eth.v2.BeaconBlockBodyGloas.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange + 59, // 134: xatu.eth.v2.BeaconBlockBodyGloas.execution_requests:type_name -> xatu.eth.v1.ElectraExecutionRequests + 43, // 135: xatu.eth.v2.BlindedBeaconBlockBodyCapella.eth1_data:type_name -> xatu.eth.v1.Eth1Data + 44, // 136: xatu.eth.v2.BlindedBeaconBlockBodyCapella.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing + 45, // 137: xatu.eth.v2.BlindedBeaconBlockBodyCapella.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing + 46, // 138: xatu.eth.v2.BlindedBeaconBlockBodyCapella.attestations:type_name -> xatu.eth.v1.Attestation + 47, // 139: xatu.eth.v2.BlindedBeaconBlockBodyCapella.deposits:type_name -> xatu.eth.v1.Deposit + 48, // 140: xatu.eth.v2.BlindedBeaconBlockBodyCapella.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit + 49, // 141: xatu.eth.v2.BlindedBeaconBlockBodyCapella.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate + 61, // 142: xatu.eth.v2.BlindedBeaconBlockBodyCapella.execution_payload_header:type_name -> xatu.eth.v1.ExecutionPayloadHeaderCapella + 55, // 143: xatu.eth.v2.BlindedBeaconBlockBodyCapella.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange + 43, // 144: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.eth1_data:type_name -> xatu.eth.v1.Eth1Data + 44, // 145: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing + 45, // 146: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing + 46, // 147: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.attestations:type_name -> xatu.eth.v1.Attestation + 47, // 148: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.deposits:type_name -> xatu.eth.v1.Deposit + 48, // 149: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit + 49, // 150: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate + 62, // 151: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.execution_payload_header:type_name -> xatu.eth.v1.ExecutionPayloadHeaderCapellaV2 + 55, // 152: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange + 43, // 153: xatu.eth.v2.BeaconBlockBodyAltair.eth1_data:type_name -> xatu.eth.v1.Eth1Data + 44, // 154: xatu.eth.v2.BeaconBlockBodyAltair.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing + 45, // 155: xatu.eth.v2.BeaconBlockBodyAltair.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing + 46, // 156: xatu.eth.v2.BeaconBlockBodyAltair.attestations:type_name -> xatu.eth.v1.Attestation + 47, // 157: xatu.eth.v2.BeaconBlockBodyAltair.deposits:type_name -> xatu.eth.v1.Deposit + 48, // 158: xatu.eth.v2.BeaconBlockBodyAltair.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit + 49, // 159: xatu.eth.v2.BeaconBlockBodyAltair.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate + 43, // 160: xatu.eth.v2.BeaconBlockBodyAltairV2.eth1_data:type_name -> xatu.eth.v1.Eth1Data + 44, // 161: xatu.eth.v2.BeaconBlockBodyAltairV2.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing + 45, // 162: xatu.eth.v2.BeaconBlockBodyAltairV2.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing + 46, // 163: xatu.eth.v2.BeaconBlockBodyAltairV2.attestations:type_name -> xatu.eth.v1.Attestation + 47, // 164: xatu.eth.v2.BeaconBlockBodyAltairV2.deposits:type_name -> xatu.eth.v1.Deposit + 48, // 165: xatu.eth.v2.BeaconBlockBodyAltairV2.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit + 49, // 166: xatu.eth.v2.BeaconBlockBodyAltairV2.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate + 167, // [167:167] is the sub-list for method output_type + 167, // [167:167] is the sub-list for method input_type + 167, // [167:167] is the sub-list for extension type_name + 167, // [167:167] is the sub-list for extension extendee + 0, // [0:167] is the sub-list for field type_name } func init() { file_pkg_proto_eth_v2_beacon_block_proto_init() } @@ -4638,7 +5012,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*SignedBlindedBeaconBlockBellatrix); i { + switch v := v.(*SignedBeaconBlockGloas); i { case 0: return &v.state case 1: @@ -4650,7 +5024,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*SignedBlindedBeaconBlockBellatrixV2); i { + switch v := v.(*SignedBlindedBeaconBlockBellatrix); i { case 0: return &v.state case 1: @@ -4662,7 +5036,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*SignedBlindedBeaconBlockCapella); i { + switch v := v.(*SignedBlindedBeaconBlockBellatrixV2); i { case 0: return &v.state case 1: @@ -4674,7 +5048,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*SignedBlindedBeaconBlockCapellaV2); i { + switch v := v.(*SignedBlindedBeaconBlockCapella); i { case 0: return &v.state case 1: @@ -4686,7 +5060,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[11].Exporter = func(v any, i int) any { - switch v := v.(*SignedBeaconBlockAltair); i { + switch v := v.(*SignedBlindedBeaconBlockCapellaV2); i { case 0: return &v.state case 1: @@ -4698,7 +5072,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*SignedBeaconBlockAltairV2); i { + switch v := v.(*SignedBeaconBlockAltair); i { case 0: return &v.state case 1: @@ -4710,7 +5084,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[13].Exporter = func(v any, i int) any { - switch v := v.(*BeaconBlockBellatrix); i { + switch v := v.(*SignedBeaconBlockAltairV2); i { case 0: return &v.state case 1: @@ -4722,7 +5096,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[14].Exporter = func(v any, i int) any { - switch v := v.(*BeaconBlockBellatrixV2); i { + switch v := v.(*BeaconBlockBellatrix); i { case 0: return &v.state case 1: @@ -4734,7 +5108,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[15].Exporter = func(v any, i int) any { - switch v := v.(*BlindedBeaconBlockBellatrix); i { + switch v := v.(*BeaconBlockBellatrixV2); i { case 0: return &v.state case 1: @@ -4746,7 +5120,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[16].Exporter = func(v any, i int) any { - switch v := v.(*BlindedBeaconBlockBellatrixV2); i { + switch v := v.(*BlindedBeaconBlockBellatrix); i { case 0: return &v.state case 1: @@ -4758,7 +5132,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[17].Exporter = func(v any, i int) any { - switch v := v.(*BeaconBlockCapella); i { + switch v := v.(*BlindedBeaconBlockBellatrixV2); i { case 0: return &v.state case 1: @@ -4770,7 +5144,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[18].Exporter = func(v any, i int) any { - switch v := v.(*BeaconBlockCapellaV2); i { + switch v := v.(*BeaconBlockCapella); i { case 0: return &v.state case 1: @@ -4782,7 +5156,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[19].Exporter = func(v any, i int) any { - switch v := v.(*BeaconBlockDeneb); i { + switch v := v.(*BeaconBlockCapellaV2); i { case 0: return &v.state case 1: @@ -4794,7 +5168,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[20].Exporter = func(v any, i int) any { - switch v := v.(*BeaconBlockElectra); i { + switch v := v.(*BeaconBlockDeneb); i { case 0: return &v.state case 1: @@ -4806,7 +5180,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[21].Exporter = func(v any, i int) any { - switch v := v.(*BeaconBlockFulu); i { + switch v := v.(*BeaconBlockElectra); i { case 0: return &v.state case 1: @@ -4818,7 +5192,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[22].Exporter = func(v any, i int) any { - switch v := v.(*BlindedBeaconBlockCapella); i { + switch v := v.(*BeaconBlockFulu); i { case 0: return &v.state case 1: @@ -4830,7 +5204,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[23].Exporter = func(v any, i int) any { - switch v := v.(*BlindedBeaconBlockCapellaV2); i { + switch v := v.(*BeaconBlockGloas); i { case 0: return &v.state case 1: @@ -4842,7 +5216,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[24].Exporter = func(v any, i int) any { - switch v := v.(*BeaconBlockAltair); i { + switch v := v.(*BlindedBeaconBlockCapella); i { case 0: return &v.state case 1: @@ -4854,7 +5228,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[25].Exporter = func(v any, i int) any { - switch v := v.(*BeaconBlockAltairV2); i { + switch v := v.(*BlindedBeaconBlockCapellaV2); i { case 0: return &v.state case 1: @@ -4866,7 +5240,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[26].Exporter = func(v any, i int) any { - switch v := v.(*BeaconBlockBodyBellatrix); i { + switch v := v.(*BeaconBlockAltair); i { case 0: return &v.state case 1: @@ -4878,7 +5252,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[27].Exporter = func(v any, i int) any { - switch v := v.(*BeaconBlockBodyBellatrixV2); i { + switch v := v.(*BeaconBlockAltairV2); i { case 0: return &v.state case 1: @@ -4890,7 +5264,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[28].Exporter = func(v any, i int) any { - switch v := v.(*BlindedBeaconBlockBodyBellatrix); i { + switch v := v.(*BeaconBlockBodyBellatrix); i { case 0: return &v.state case 1: @@ -4902,7 +5276,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[29].Exporter = func(v any, i int) any { - switch v := v.(*BlindedBeaconBlockBodyBellatrixV2); i { + switch v := v.(*BeaconBlockBodyBellatrixV2); i { case 0: return &v.state case 1: @@ -4914,7 +5288,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[30].Exporter = func(v any, i int) any { - switch v := v.(*BeaconBlockBodyCapella); i { + switch v := v.(*BlindedBeaconBlockBodyBellatrix); i { case 0: return &v.state case 1: @@ -4926,7 +5300,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[31].Exporter = func(v any, i int) any { - switch v := v.(*BeaconBlockBodyCapellaV2); i { + switch v := v.(*BlindedBeaconBlockBodyBellatrixV2); i { case 0: return &v.state case 1: @@ -4938,7 +5312,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[32].Exporter = func(v any, i int) any { - switch v := v.(*BeaconBlockBodyDeneb); i { + switch v := v.(*BeaconBlockBodyCapella); i { case 0: return &v.state case 1: @@ -4950,7 +5324,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[33].Exporter = func(v any, i int) any { - switch v := v.(*BeaconBlockBodyElectra); i { + switch v := v.(*BeaconBlockBodyCapellaV2); i { case 0: return &v.state case 1: @@ -4962,7 +5336,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[34].Exporter = func(v any, i int) any { - switch v := v.(*BeaconBlockBodyFulu); i { + switch v := v.(*BeaconBlockBodyDeneb); i { case 0: return &v.state case 1: @@ -4974,7 +5348,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[35].Exporter = func(v any, i int) any { - switch v := v.(*BlindedBeaconBlockBodyCapella); i { + switch v := v.(*BeaconBlockBodyElectra); i { case 0: return &v.state case 1: @@ -4986,7 +5360,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[36].Exporter = func(v any, i int) any { - switch v := v.(*BlindedBeaconBlockBodyCapellaV2); i { + switch v := v.(*BeaconBlockBodyFulu); i { case 0: return &v.state case 1: @@ -4998,7 +5372,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[37].Exporter = func(v any, i int) any { - switch v := v.(*BeaconBlockBodyAltair); i { + switch v := v.(*BeaconBlockBodyGloas); i { case 0: return &v.state case 1: @@ -5010,6 +5384,42 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { } } file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[38].Exporter = func(v any, i int) any { + switch v := v.(*BlindedBeaconBlockBodyCapella); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[39].Exporter = func(v any, i int) any { + switch v := v.(*BlindedBeaconBlockBodyCapellaV2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[40].Exporter = func(v any, i int) any { + switch v := v.(*BeaconBlockBodyAltair); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_eth_v2_beacon_block_proto_msgTypes[41].Exporter = func(v any, i int) any { switch v := v.(*BeaconBlockBodyAltairV2); i { case 0: return &v.state @@ -5028,7 +5438,7 @@ func file_pkg_proto_eth_v2_beacon_block_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pkg_proto_eth_v2_beacon_block_proto_rawDesc, NumEnums: 0, - NumMessages: 39, + NumMessages: 42, NumExtensions: 0, NumServices: 0, }, diff --git a/pkg/proto/eth/v2/beacon_block.proto b/pkg/proto/eth/v2/beacon_block.proto index dd452d6d5..24ef88b8c 100644 --- a/pkg/proto/eth/v2/beacon_block.proto +++ b/pkg/proto/eth/v2/beacon_block.proto @@ -57,6 +57,12 @@ message SignedBeaconBlockFulu { string signature = 2; } +message SignedBeaconBlockGloas { + BeaconBlockGloas message = 1; + + string signature = 2; +} + message SignedBlindedBeaconBlockBellatrix { BlindedBeaconBlockBellatrix message = 1; @@ -207,6 +213,19 @@ message BeaconBlockFulu { BeaconBlockBodyFulu body = 5; } +message BeaconBlockGloas { + google.protobuf.UInt64Value slot = 1 [ json_name = "slot" ]; + + google.protobuf.UInt64Value proposer_index = 2 + [ json_name = "proposer_index" ]; + + string parent_root = 3 [ json_name = "parent_root" ]; + + string state_root = 4 [ json_name = "state_root" ]; + + BeaconBlockBodyGloas body = 5; +} + message BlindedBeaconBlockCapella { uint64 slot = 1; @@ -513,9 +532,43 @@ message BeaconBlockBodyFulu { repeated SignedBLSToExecutionChange bls_to_execution_changes = 11 [ json_name = "bls_to_execution_changes" ]; - repeated string blob_kzg_commitments = 12 + repeated string blob_kzg_commitments = 12 [ json_name = "blob_kzg_commitments" ]; - + + v1.ElectraExecutionRequests execution_requests = 13 [ json_name = "execution_requests" ]; +} + +message BeaconBlockBodyGloas { + string randao_reveal = 1 [ json_name = "randao_reveal" ]; + + v1.Eth1Data eth1_data = 2 [ json_name = "eth1_data" ]; + + string graffiti = 3; + + repeated v1.ProposerSlashing proposer_slashings = 4 + [ json_name = "proposer_slashings" ]; + + repeated v1.AttesterSlashing attester_slashings = 5 + [ json_name = "attester_slashings" ]; + + repeated v1.Attestation attestations = 6; + + repeated v1.Deposit deposits = 7; + + repeated v1.SignedVoluntaryExit voluntary_exits = 8 + [ json_name = "voluntary_exits" ]; + + v1.SyncAggregate sync_aggregate = 9 [ json_name = "sync_aggregate" ]; + + v1.ExecutionPayloadGloas execution_payload = 10 + [ json_name = "execution_payload" ]; + + repeated SignedBLSToExecutionChange bls_to_execution_changes = 11 + [ json_name = "bls_to_execution_changes" ]; + + repeated string blob_kzg_commitments = 12 + [ json_name = "blob_kzg_commitments" ]; + v1.ElectraExecutionRequests execution_requests = 13 [ json_name = "execution_requests" ]; } diff --git a/pkg/proto/eth/v2/events.pb.go b/pkg/proto/eth/v2/events.pb.go index 036471439..7e94bf3ba 100644 --- a/pkg/proto/eth/v2/events.pb.go +++ b/pkg/proto/eth/v2/events.pb.go @@ -33,6 +33,7 @@ const ( BlockVersion_DENEB BlockVersion = 5 BlockVersion_ELECTRA BlockVersion = 6 BlockVersion_FULU BlockVersion = 7 + BlockVersion_GLOAS BlockVersion = 8 ) // Enum value maps for BlockVersion. @@ -46,6 +47,7 @@ var ( 5: "DENEB", 6: "ELECTRA", 7: "FULU", + 8: "GLOAS", } BlockVersion_value = map[string]int32{ "UNKNOWN": 0, @@ -56,6 +58,7 @@ var ( "DENEB": 5, "ELECTRA": 6, "FULU": 7, + "GLOAS": 8, } ) @@ -100,6 +103,7 @@ type EventBlock struct { // *EventBlock_DenebBlock // *EventBlock_ElectraBlock // *EventBlock_FuluBlock + // *EventBlock_GloasBlock Message isEventBlock_Message `protobuf_oneof:"message"` Signature string `protobuf:"bytes,5,opt,name=signature,proto3" json:"signature,omitempty"` Version BlockVersion `protobuf:"varint,6,opt,name=version,proto3,enum=xatu.eth.v2.BlockVersion" json:"version,omitempty"` @@ -193,6 +197,13 @@ func (x *EventBlock) GetFuluBlock() *BeaconBlockFulu { return nil } +func (x *EventBlock) GetGloasBlock() *BeaconBlockGloas { + if x, ok := x.GetMessage().(*EventBlock_GloasBlock); ok { + return x.GloasBlock + } + return nil +} + func (x *EventBlock) GetSignature() string { if x != nil { return x.Signature @@ -239,6 +250,10 @@ type EventBlock_FuluBlock struct { FuluBlock *BeaconBlockFulu `protobuf:"bytes,9,opt,name=fulu_block,json=FULU,proto3,oneof"` } +type EventBlock_GloasBlock struct { + GloasBlock *BeaconBlockGloas `protobuf:"bytes,10,opt,name=gloas_block,json=GLOAS,proto3,oneof"` +} + func (*EventBlock_Phase0Block) isEventBlock_Message() {} func (*EventBlock_AltairBlock) isEventBlock_Message() {} @@ -253,6 +268,8 @@ func (*EventBlock_ElectraBlock) isEventBlock_Message() {} func (*EventBlock_FuluBlock) isEventBlock_Message() {} +func (*EventBlock_GloasBlock) isEventBlock_Message() {} + type EventBlockV2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -267,6 +284,7 @@ type EventBlockV2 struct { // *EventBlockV2_DenebBlock // *EventBlockV2_ElectraBlock // *EventBlockV2_FuluBlock + // *EventBlockV2_GloasBlock Message isEventBlockV2_Message `protobuf_oneof:"message"` Signature string `protobuf:"bytes,5,opt,name=signature,proto3" json:"signature,omitempty"` Version BlockVersion `protobuf:"varint,6,opt,name=version,proto3,enum=xatu.eth.v2.BlockVersion" json:"version,omitempty"` @@ -360,6 +378,13 @@ func (x *EventBlockV2) GetFuluBlock() *BeaconBlockFulu { return nil } +func (x *EventBlockV2) GetGloasBlock() *BeaconBlockGloas { + if x, ok := x.GetMessage().(*EventBlockV2_GloasBlock); ok { + return x.GloasBlock + } + return nil +} + func (x *EventBlockV2) GetSignature() string { if x != nil { return x.Signature @@ -406,6 +431,10 @@ type EventBlockV2_FuluBlock struct { FuluBlock *BeaconBlockFulu `protobuf:"bytes,9,opt,name=fulu_block,json=FULU,proto3,oneof"` } +type EventBlockV2_GloasBlock struct { + GloasBlock *BeaconBlockGloas `protobuf:"bytes,10,opt,name=gloas_block,json=GLOAS,proto3,oneof"` +} + func (*EventBlockV2_Phase0Block) isEventBlockV2_Message() {} func (*EventBlockV2_AltairBlock) isEventBlockV2_Message() {} @@ -420,6 +449,8 @@ func (*EventBlockV2_ElectraBlock) isEventBlockV2_Message() {} func (*EventBlockV2_FuluBlock) isEventBlockV2_Message() {} +func (*EventBlockV2_GloasBlock) isEventBlockV2_Message() {} + var File_pkg_proto_eth_v2_events_proto protoreflect.FileDescriptor var file_pkg_proto_eth_v2_events_proto_rawDesc = []byte{ @@ -432,7 +463,7 @@ var file_pkg_proto_eth_v2_events_proto_rawDesc = []byte{ 0x2f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x32, 0x2f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xaa, 0x04, 0x0a, 0x0a, 0x45, 0x76, 0x65, + 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe7, 0x04, 0x0a, 0x0a, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x38, 0x0a, 0x0c, 0x70, 0x68, 0x61, 0x73, 0x65, 0x30, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x65, 0x61, 0x63, @@ -461,59 +492,67 @@ var file_pkg_proto_eth_v2_events_proto_rawDesc = []byte{ 0x0a, 0x66, 0x75, 0x6c, 0x75, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x75, 0x6c, 0x75, 0x48, - 0x00, 0x52, 0x04, 0x46, 0x55, 0x4c, 0x55, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xb4, 0x04, 0x0a, 0x0c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x12, 0x3a, 0x0a, 0x0c, 0x70, 0x68, 0x61, 0x73, 0x65, 0x30, - 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x06, 0x50, 0x48, 0x41, 0x53, - 0x45, 0x30, 0x12, 0x40, 0x0a, 0x0c, 0x61, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x56, 0x32, 0x48, 0x00, 0x52, 0x06, 0x41, 0x4c, - 0x54, 0x41, 0x49, 0x52, 0x12, 0x49, 0x0a, 0x0f, 0x62, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, - 0x78, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, - 0x56, 0x32, 0x48, 0x00, 0x52, 0x09, 0x42, 0x45, 0x4c, 0x4c, 0x41, 0x54, 0x52, 0x49, 0x58, 0x12, - 0x43, 0x0a, 0x0d, 0x63, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x00, 0x52, 0x04, 0x46, 0x55, 0x4c, 0x55, 0x12, 0x3b, 0x0a, 0x0b, 0x67, 0x6c, 0x6f, 0x61, 0x73, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6c, 0x6f, 0x61, 0x73, 0x48, 0x00, 0x52, 0x05, 0x47, + 0x4c, 0x4f, 0x41, 0x53, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x22, 0xf1, 0x04, 0x0a, 0x0c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x56, 0x32, 0x12, 0x3a, 0x0a, 0x0c, 0x70, 0x68, 0x61, 0x73, 0x65, 0x30, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x06, 0x50, 0x48, 0x41, 0x53, 0x45, 0x30, 0x12, + 0x40, 0x0a, 0x0c, 0x61, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, + 0x6c, 0x74, 0x61, 0x69, 0x72, 0x56, 0x32, 0x48, 0x00, 0x52, 0x06, 0x41, 0x4c, 0x54, 0x41, 0x49, + 0x52, 0x12, 0x49, 0x0a, 0x0f, 0x62, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x48, + 0x00, 0x52, 0x09, 0x42, 0x45, 0x4c, 0x4c, 0x41, 0x54, 0x52, 0x49, 0x58, 0x12, 0x43, 0x0a, 0x0d, + 0x63, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, + 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x48, 0x00, 0x52, 0x07, 0x43, 0x41, 0x50, 0x45, 0x4c, 0x4c, + 0x41, 0x12, 0x3b, 0x0a, 0x0b, 0x64, 0x65, 0x6e, 0x65, 0x62, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x48, 0x00, 0x52, 0x07, 0x43, 0x41, 0x50, - 0x45, 0x4c, 0x4c, 0x41, 0x12, 0x3b, 0x0a, 0x0b, 0x64, 0x65, 0x6e, 0x65, 0x62, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x6e, 0x65, 0x62, 0x48, 0x00, 0x52, 0x05, 0x44, 0x45, 0x4e, 0x45, - 0x42, 0x12, 0x41, 0x0a, 0x0d, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x48, 0x00, 0x52, 0x07, 0x45, 0x4c, 0x45, - 0x43, 0x54, 0x52, 0x41, 0x12, 0x38, 0x0a, 0x0a, 0x66, 0x75, 0x6c, 0x75, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x46, 0x75, 0x6c, 0x75, 0x48, 0x00, 0x52, 0x04, 0x46, 0x55, 0x4c, 0x55, 0x12, 0x1c, - 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x33, 0x0a, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0x71, 0x0a, 0x0c, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, - 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x48, 0x41, - 0x53, 0x45, 0x30, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x4c, 0x54, 0x41, 0x49, 0x52, 0x10, - 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x45, 0x4c, 0x4c, 0x41, 0x54, 0x52, 0x49, 0x58, 0x10, 0x03, - 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x41, 0x50, 0x45, 0x4c, 0x4c, 0x41, 0x10, 0x04, 0x12, 0x09, 0x0a, - 0x05, 0x44, 0x45, 0x4e, 0x45, 0x42, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4c, 0x45, 0x43, - 0x54, 0x52, 0x41, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x55, 0x10, 0x07, 0x42, - 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, - 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, - 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x32, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x44, 0x65, 0x6e, 0x65, 0x62, 0x48, 0x00, 0x52, 0x05, 0x44, 0x45, 0x4e, 0x45, 0x42, 0x12, 0x41, + 0x0a, 0x0d, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, + 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x48, 0x00, 0x52, 0x07, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x52, + 0x41, 0x12, 0x38, 0x0a, 0x0a, 0x66, 0x75, 0x6c, 0x75, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x46, + 0x75, 0x6c, 0x75, 0x48, 0x00, 0x52, 0x04, 0x46, 0x55, 0x4c, 0x55, 0x12, 0x3b, 0x0a, 0x0b, 0x67, + 0x6c, 0x6f, 0x61, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6c, 0x6f, 0x61, 0x73, 0x48, + 0x00, 0x52, 0x05, 0x47, 0x4c, 0x4f, 0x41, 0x53, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0x7c, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, + 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x48, 0x41, 0x53, 0x45, 0x30, 0x10, 0x01, 0x12, + 0x0a, 0x0a, 0x06, 0x41, 0x4c, 0x54, 0x41, 0x49, 0x52, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x42, + 0x45, 0x4c, 0x4c, 0x41, 0x54, 0x52, 0x49, 0x58, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x41, + 0x50, 0x45, 0x4c, 0x4c, 0x41, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45, 0x4e, 0x45, 0x42, + 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x52, 0x41, 0x10, 0x06, 0x12, + 0x08, 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x55, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x4c, 0x4f, + 0x41, 0x53, 0x10, 0x08, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, 0x2f, 0x78, + 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, + 0x68, 0x2f, 0x76, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -541,10 +580,11 @@ var file_pkg_proto_eth_v2_events_proto_goTypes = []any{ (*BeaconBlockDeneb)(nil), // 7: xatu.eth.v2.BeaconBlockDeneb (*BeaconBlockElectra)(nil), // 8: xatu.eth.v2.BeaconBlockElectra (*BeaconBlockFulu)(nil), // 9: xatu.eth.v2.BeaconBlockFulu - (*v1.BeaconBlockV2)(nil), // 10: xatu.eth.v1.BeaconBlockV2 - (*BeaconBlockAltairV2)(nil), // 11: xatu.eth.v2.BeaconBlockAltairV2 - (*BeaconBlockBellatrixV2)(nil), // 12: xatu.eth.v2.BeaconBlockBellatrixV2 - (*BeaconBlockCapellaV2)(nil), // 13: xatu.eth.v2.BeaconBlockCapellaV2 + (*BeaconBlockGloas)(nil), // 10: xatu.eth.v2.BeaconBlockGloas + (*v1.BeaconBlockV2)(nil), // 11: xatu.eth.v1.BeaconBlockV2 + (*BeaconBlockAltairV2)(nil), // 12: xatu.eth.v2.BeaconBlockAltairV2 + (*BeaconBlockBellatrixV2)(nil), // 13: xatu.eth.v2.BeaconBlockBellatrixV2 + (*BeaconBlockCapellaV2)(nil), // 14: xatu.eth.v2.BeaconBlockCapellaV2 } var file_pkg_proto_eth_v2_events_proto_depIdxs = []int32{ 3, // 0: xatu.eth.v2.EventBlock.phase0_block:type_name -> xatu.eth.v1.BeaconBlock @@ -554,20 +594,22 @@ var file_pkg_proto_eth_v2_events_proto_depIdxs = []int32{ 7, // 4: xatu.eth.v2.EventBlock.deneb_block:type_name -> xatu.eth.v2.BeaconBlockDeneb 8, // 5: xatu.eth.v2.EventBlock.electra_block:type_name -> xatu.eth.v2.BeaconBlockElectra 9, // 6: xatu.eth.v2.EventBlock.fulu_block:type_name -> xatu.eth.v2.BeaconBlockFulu - 0, // 7: xatu.eth.v2.EventBlock.version:type_name -> xatu.eth.v2.BlockVersion - 10, // 8: xatu.eth.v2.EventBlockV2.phase0_block:type_name -> xatu.eth.v1.BeaconBlockV2 - 11, // 9: xatu.eth.v2.EventBlockV2.altair_block:type_name -> xatu.eth.v2.BeaconBlockAltairV2 - 12, // 10: xatu.eth.v2.EventBlockV2.bellatrix_block:type_name -> xatu.eth.v2.BeaconBlockBellatrixV2 - 13, // 11: xatu.eth.v2.EventBlockV2.capella_block:type_name -> xatu.eth.v2.BeaconBlockCapellaV2 - 7, // 12: xatu.eth.v2.EventBlockV2.deneb_block:type_name -> xatu.eth.v2.BeaconBlockDeneb - 8, // 13: xatu.eth.v2.EventBlockV2.electra_block:type_name -> xatu.eth.v2.BeaconBlockElectra - 9, // 14: xatu.eth.v2.EventBlockV2.fulu_block:type_name -> xatu.eth.v2.BeaconBlockFulu - 0, // 15: xatu.eth.v2.EventBlockV2.version:type_name -> xatu.eth.v2.BlockVersion - 16, // [16:16] is the sub-list for method output_type - 16, // [16:16] is the sub-list for method input_type - 16, // [16:16] is the sub-list for extension type_name - 16, // [16:16] is the sub-list for extension extendee - 0, // [0:16] is the sub-list for field type_name + 10, // 7: xatu.eth.v2.EventBlock.gloas_block:type_name -> xatu.eth.v2.BeaconBlockGloas + 0, // 8: xatu.eth.v2.EventBlock.version:type_name -> xatu.eth.v2.BlockVersion + 11, // 9: xatu.eth.v2.EventBlockV2.phase0_block:type_name -> xatu.eth.v1.BeaconBlockV2 + 12, // 10: xatu.eth.v2.EventBlockV2.altair_block:type_name -> xatu.eth.v2.BeaconBlockAltairV2 + 13, // 11: xatu.eth.v2.EventBlockV2.bellatrix_block:type_name -> xatu.eth.v2.BeaconBlockBellatrixV2 + 14, // 12: xatu.eth.v2.EventBlockV2.capella_block:type_name -> xatu.eth.v2.BeaconBlockCapellaV2 + 7, // 13: xatu.eth.v2.EventBlockV2.deneb_block:type_name -> xatu.eth.v2.BeaconBlockDeneb + 8, // 14: xatu.eth.v2.EventBlockV2.electra_block:type_name -> xatu.eth.v2.BeaconBlockElectra + 9, // 15: xatu.eth.v2.EventBlockV2.fulu_block:type_name -> xatu.eth.v2.BeaconBlockFulu + 10, // 16: xatu.eth.v2.EventBlockV2.gloas_block:type_name -> xatu.eth.v2.BeaconBlockGloas + 0, // 17: xatu.eth.v2.EventBlockV2.version:type_name -> xatu.eth.v2.BlockVersion + 18, // [18:18] is the sub-list for method output_type + 18, // [18:18] is the sub-list for method input_type + 18, // [18:18] is the sub-list for extension type_name + 18, // [18:18] is the sub-list for extension extendee + 0, // [0:18] is the sub-list for field type_name } func init() { file_pkg_proto_eth_v2_events_proto_init() } @@ -610,6 +652,7 @@ func file_pkg_proto_eth_v2_events_proto_init() { (*EventBlock_DenebBlock)(nil), (*EventBlock_ElectraBlock)(nil), (*EventBlock_FuluBlock)(nil), + (*EventBlock_GloasBlock)(nil), } file_pkg_proto_eth_v2_events_proto_msgTypes[1].OneofWrappers = []any{ (*EventBlockV2_Phase0Block)(nil), @@ -619,6 +662,7 @@ func file_pkg_proto_eth_v2_events_proto_init() { (*EventBlockV2_DenebBlock)(nil), (*EventBlockV2_ElectraBlock)(nil), (*EventBlockV2_FuluBlock)(nil), + (*EventBlockV2_GloasBlock)(nil), } type x struct{} out := protoimpl.TypeBuilder{ diff --git a/pkg/proto/eth/v2/events.proto b/pkg/proto/eth/v2/events.proto index 15189b428..d6ed435e6 100644 --- a/pkg/proto/eth/v2/events.proto +++ b/pkg/proto/eth/v2/events.proto @@ -24,6 +24,8 @@ enum BlockVersion { ELECTRA = 6; FULU = 7; + + GLOAS = 8; } message EventBlock { @@ -41,6 +43,8 @@ message EventBlock { v2.BeaconBlockElectra electra_block = 8 [ json_name = "ELECTRA" ]; v2.BeaconBlockFulu fulu_block = 9 [ json_name = "FULU" ]; + + v2.BeaconBlockGloas gloas_block = 10 [ json_name = "GLOAS" ]; } string signature = 5; @@ -62,7 +66,9 @@ message EventBlockV2 { v2.BeaconBlockElectra electra_block = 8 [ json_name = "ELECTRA" ]; - v2.BeaconBlockFulu fulu_block = 9 [ json_name = "FULU" ]; + v2.BeaconBlockFulu fulu_block = 9 [ json_name = "FULU" ]; + + v2.BeaconBlockGloas gloas_block = 10 [ json_name = "GLOAS" ]; } string signature = 5; diff --git a/pkg/proto/xatu/coordinator.pb.go b/pkg/proto/xatu/coordinator.pb.go index d08ceb6da..5a90cb222 100644 --- a/pkg/proto/xatu/coordinator.pb.go +++ b/pkg/proto/xatu/coordinator.pb.go @@ -39,6 +39,7 @@ const ( CannonType_BEACON_API_ETH_V1_BEACON_COMMITTEE CannonType = 13 CannonType_BEACON_API_ETH_V1_BEACON_SYNC_COMMITTEE CannonType = 14 CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_SYNC_AGGREGATE CannonType = 15 + CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST CannonType = 16 ) // Enum value maps for CannonType. @@ -59,6 +60,7 @@ var ( 13: "BEACON_API_ETH_V1_BEACON_COMMITTEE", 14: "BEACON_API_ETH_V1_BEACON_SYNC_COMMITTEE", 15: "BEACON_API_ETH_V2_BEACON_BLOCK_SYNC_AGGREGATE", + 16: "BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST", } CannonType_value = map[string]int32{ "BEACON_API_ETH_V2_BEACON_BLOCK_VOLUNTARY_EXIT": 0, @@ -76,6 +78,7 @@ var ( "BEACON_API_ETH_V1_BEACON_COMMITTEE": 13, "BEACON_API_ETH_V1_BEACON_SYNC_COMMITTEE": 14, "BEACON_API_ETH_V2_BEACON_BLOCK_SYNC_AGGREGATE": 15, + "BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST": 16, } ) @@ -2360,6 +2363,53 @@ func (x *CannonLocationEthV2BeaconBlockSyncAggregate) GetBackfillingCheckpointMa return nil } +type CannonLocationEthV2BeaconBlockAccessList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BackfillingCheckpointMarker *BackfillingCheckpointMarker `protobuf:"bytes,1,opt,name=backfilling_checkpoint_marker,json=backfillingCheckpointMarker,proto3" json:"backfilling_checkpoint_marker,omitempty"` +} + +func (x *CannonLocationEthV2BeaconBlockAccessList) Reset() { + *x = CannonLocationEthV2BeaconBlockAccessList{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CannonLocationEthV2BeaconBlockAccessList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CannonLocationEthV2BeaconBlockAccessList) ProtoMessage() {} + +func (x *CannonLocationEthV2BeaconBlockAccessList) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[41] + 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 CannonLocationEthV2BeaconBlockAccessList.ProtoReflect.Descriptor instead. +func (*CannonLocationEthV2BeaconBlockAccessList) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{41} +} + +func (x *CannonLocationEthV2BeaconBlockAccessList) GetBackfillingCheckpointMarker() *BackfillingCheckpointMarker { + if x != nil { + return x.BackfillingCheckpointMarker + } + return nil +} + type CannonLocation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2384,13 +2434,14 @@ type CannonLocation struct { // *CannonLocation_EthV1BeaconCommittee // *CannonLocation_EthV1BeaconSyncCommittee // *CannonLocation_EthV2BeaconBlockSyncAggregate + // *CannonLocation_EthV2BeaconBlockAccessList Data isCannonLocation_Data `protobuf_oneof:"Data"` } func (x *CannonLocation) Reset() { *x = CannonLocation{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[41] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2403,7 +2454,7 @@ func (x *CannonLocation) String() string { func (*CannonLocation) ProtoMessage() {} func (x *CannonLocation) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[41] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2416,7 +2467,7 @@ func (x *CannonLocation) ProtoReflect() protoreflect.Message { // Deprecated: Use CannonLocation.ProtoReflect.Descriptor instead. func (*CannonLocation) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{41} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{42} } func (x *CannonLocation) GetNetworkId() string { @@ -2545,6 +2596,13 @@ func (x *CannonLocation) GetEthV2BeaconBlockSyncAggregate() *CannonLocationEthV2 return nil } +func (x *CannonLocation) GetEthV2BeaconBlockAccessList() *CannonLocationEthV2BeaconBlockAccessList { + if x, ok := x.GetData().(*CannonLocation_EthV2BeaconBlockAccessList); ok { + return x.EthV2BeaconBlockAccessList + } + return nil +} + type isCannonLocation_Data interface { isCannonLocation_Data() } @@ -2611,6 +2669,10 @@ type CannonLocation_EthV2BeaconBlockSyncAggregate struct { EthV2BeaconBlockSyncAggregate *CannonLocationEthV2BeaconBlockSyncAggregate `protobuf:"bytes,18,opt,name=eth_v2_beacon_block_sync_aggregate,json=BEACON_API_ETH_V2_BEACON_BLOCK_SYNC_AGGREGATE,proto3,oneof"` } +type CannonLocation_EthV2BeaconBlockAccessList struct { + EthV2BeaconBlockAccessList *CannonLocationEthV2BeaconBlockAccessList `protobuf:"bytes,19,opt,name=eth_v2_beacon_block_access_list,json=BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST,proto3,oneof"` +} + func (*CannonLocation_EthV2BeaconBlockVoluntaryExit) isCannonLocation_Data() {} func (*CannonLocation_EthV2BeaconBlockProposerSlashing) isCannonLocation_Data() {} @@ -2641,6 +2703,8 @@ func (*CannonLocation_EthV1BeaconSyncCommittee) isCannonLocation_Data() {} func (*CannonLocation_EthV2BeaconBlockSyncAggregate) isCannonLocation_Data() {} +func (*CannonLocation_EthV2BeaconBlockAccessList) isCannonLocation_Data() {} + type GetCannonLocationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2653,7 +2717,7 @@ type GetCannonLocationRequest struct { func (x *GetCannonLocationRequest) Reset() { *x = GetCannonLocationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[42] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2666,7 +2730,7 @@ func (x *GetCannonLocationRequest) String() string { func (*GetCannonLocationRequest) ProtoMessage() {} func (x *GetCannonLocationRequest) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[42] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2679,7 +2743,7 @@ func (x *GetCannonLocationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCannonLocationRequest.ProtoReflect.Descriptor instead. func (*GetCannonLocationRequest) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{42} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{43} } func (x *GetCannonLocationRequest) GetNetworkId() string { @@ -2707,7 +2771,7 @@ type GetCannonLocationResponse struct { func (x *GetCannonLocationResponse) Reset() { *x = GetCannonLocationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[43] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2720,7 +2784,7 @@ func (x *GetCannonLocationResponse) String() string { func (*GetCannonLocationResponse) ProtoMessage() {} func (x *GetCannonLocationResponse) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[43] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2733,7 +2797,7 @@ func (x *GetCannonLocationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCannonLocationResponse.ProtoReflect.Descriptor instead. func (*GetCannonLocationResponse) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{43} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{44} } func (x *GetCannonLocationResponse) GetLocation() *CannonLocation { @@ -2754,7 +2818,7 @@ type UpsertCannonLocationRequest struct { func (x *UpsertCannonLocationRequest) Reset() { *x = UpsertCannonLocationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[44] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2767,7 +2831,7 @@ func (x *UpsertCannonLocationRequest) String() string { func (*UpsertCannonLocationRequest) ProtoMessage() {} func (x *UpsertCannonLocationRequest) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[44] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2780,7 +2844,7 @@ func (x *UpsertCannonLocationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpsertCannonLocationRequest.ProtoReflect.Descriptor instead. func (*UpsertCannonLocationRequest) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{44} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{45} } func (x *UpsertCannonLocationRequest) GetLocation() *CannonLocation { @@ -2799,7 +2863,7 @@ type UpsertCannonLocationResponse struct { func (x *UpsertCannonLocationResponse) Reset() { *x = UpsertCannonLocationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[45] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2812,7 +2876,7 @@ func (x *UpsertCannonLocationResponse) String() string { func (*UpsertCannonLocationResponse) ProtoMessage() {} func (x *UpsertCannonLocationResponse) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[45] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2825,7 +2889,7 @@ func (x *UpsertCannonLocationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpsertCannonLocationResponse.ProtoReflect.Descriptor instead. func (*UpsertCannonLocationResponse) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{45} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{46} } // Track current slot for consistency processes @@ -2842,7 +2906,7 @@ type RelayMonitorSlotMarker struct { func (x *RelayMonitorSlotMarker) Reset() { *x = RelayMonitorSlotMarker{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[46] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2855,7 +2919,7 @@ func (x *RelayMonitorSlotMarker) String() string { func (*RelayMonitorSlotMarker) ProtoMessage() {} func (x *RelayMonitorSlotMarker) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[46] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2868,7 +2932,7 @@ func (x *RelayMonitorSlotMarker) ProtoReflect() protoreflect.Message { // Deprecated: Use RelayMonitorSlotMarker.ProtoReflect.Descriptor instead. func (*RelayMonitorSlotMarker) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{46} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{47} } func (x *RelayMonitorSlotMarker) GetCurrentSlot() uint64 { @@ -2889,7 +2953,7 @@ type RelayMonitorLocationBidTrace struct { func (x *RelayMonitorLocationBidTrace) Reset() { *x = RelayMonitorLocationBidTrace{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[47] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2902,7 +2966,7 @@ func (x *RelayMonitorLocationBidTrace) String() string { func (*RelayMonitorLocationBidTrace) ProtoMessage() {} func (x *RelayMonitorLocationBidTrace) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[47] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2915,7 +2979,7 @@ func (x *RelayMonitorLocationBidTrace) ProtoReflect() protoreflect.Message { // Deprecated: Use RelayMonitorLocationBidTrace.ProtoReflect.Descriptor instead. func (*RelayMonitorLocationBidTrace) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{47} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{48} } func (x *RelayMonitorLocationBidTrace) GetSlotMarker() *RelayMonitorSlotMarker { @@ -2936,7 +3000,7 @@ type RelayMonitorLocationPayloadDelivered struct { func (x *RelayMonitorLocationPayloadDelivered) Reset() { *x = RelayMonitorLocationPayloadDelivered{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[48] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2949,7 +3013,7 @@ func (x *RelayMonitorLocationPayloadDelivered) String() string { func (*RelayMonitorLocationPayloadDelivered) ProtoMessage() {} func (x *RelayMonitorLocationPayloadDelivered) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[48] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2962,7 +3026,7 @@ func (x *RelayMonitorLocationPayloadDelivered) ProtoReflect() protoreflect.Messa // Deprecated: Use RelayMonitorLocationPayloadDelivered.ProtoReflect.Descriptor instead. func (*RelayMonitorLocationPayloadDelivered) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{48} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{49} } func (x *RelayMonitorLocationPayloadDelivered) GetSlotMarker() *RelayMonitorSlotMarker { @@ -2991,7 +3055,7 @@ type RelayMonitorLocation struct { func (x *RelayMonitorLocation) Reset() { *x = RelayMonitorLocation{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[49] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3004,7 +3068,7 @@ func (x *RelayMonitorLocation) String() string { func (*RelayMonitorLocation) ProtoMessage() {} func (x *RelayMonitorLocation) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[49] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3017,7 +3081,7 @@ func (x *RelayMonitorLocation) ProtoReflect() protoreflect.Message { // Deprecated: Use RelayMonitorLocation.ProtoReflect.Descriptor instead. func (*RelayMonitorLocation) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{49} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{50} } func (x *RelayMonitorLocation) GetMetaNetworkName() string { @@ -3099,7 +3163,7 @@ type GetRelayMonitorLocationRequest struct { func (x *GetRelayMonitorLocationRequest) Reset() { *x = GetRelayMonitorLocationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[50] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3112,7 +3176,7 @@ func (x *GetRelayMonitorLocationRequest) String() string { func (*GetRelayMonitorLocationRequest) ProtoMessage() {} func (x *GetRelayMonitorLocationRequest) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[50] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3125,7 +3189,7 @@ func (x *GetRelayMonitorLocationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRelayMonitorLocationRequest.ProtoReflect.Descriptor instead. func (*GetRelayMonitorLocationRequest) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{50} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{51} } func (x *GetRelayMonitorLocationRequest) GetMetaNetworkName() string { @@ -3167,7 +3231,7 @@ type GetRelayMonitorLocationResponse struct { func (x *GetRelayMonitorLocationResponse) Reset() { *x = GetRelayMonitorLocationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[51] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3180,7 +3244,7 @@ func (x *GetRelayMonitorLocationResponse) String() string { func (*GetRelayMonitorLocationResponse) ProtoMessage() {} func (x *GetRelayMonitorLocationResponse) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[51] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3193,7 +3257,7 @@ func (x *GetRelayMonitorLocationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRelayMonitorLocationResponse.ProtoReflect.Descriptor instead. func (*GetRelayMonitorLocationResponse) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{51} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{52} } func (x *GetRelayMonitorLocationResponse) GetLocation() *RelayMonitorLocation { @@ -3214,7 +3278,7 @@ type UpsertRelayMonitorLocationRequest struct { func (x *UpsertRelayMonitorLocationRequest) Reset() { *x = UpsertRelayMonitorLocationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[52] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3227,7 +3291,7 @@ func (x *UpsertRelayMonitorLocationRequest) String() string { func (*UpsertRelayMonitorLocationRequest) ProtoMessage() {} func (x *UpsertRelayMonitorLocationRequest) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[52] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3240,7 +3304,7 @@ func (x *UpsertRelayMonitorLocationRequest) ProtoReflect() protoreflect.Message // Deprecated: Use UpsertRelayMonitorLocationRequest.ProtoReflect.Descriptor instead. func (*UpsertRelayMonitorLocationRequest) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{52} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{53} } func (x *UpsertRelayMonitorLocationRequest) GetLocation() *RelayMonitorLocation { @@ -3259,7 +3323,7 @@ type UpsertRelayMonitorLocationResponse struct { func (x *UpsertRelayMonitorLocationResponse) Reset() { *x = UpsertRelayMonitorLocationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[53] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3272,7 +3336,7 @@ func (x *UpsertRelayMonitorLocationResponse) String() string { func (*UpsertRelayMonitorLocationResponse) ProtoMessage() {} func (x *UpsertRelayMonitorLocationResponse) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[53] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3285,7 +3349,7 @@ func (x *UpsertRelayMonitorLocationResponse) ProtoReflect() protoreflect.Message // Deprecated: Use UpsertRelayMonitorLocationResponse.ProtoReflect.Descriptor instead. func (*UpsertRelayMonitorLocationResponse) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{53} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{54} } type ExecutionNodeStatus_Capability struct { @@ -3300,7 +3364,7 @@ type ExecutionNodeStatus_Capability struct { func (x *ExecutionNodeStatus_Capability) Reset() { *x = ExecutionNodeStatus_Capability{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[54] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3313,7 +3377,7 @@ func (x *ExecutionNodeStatus_Capability) String() string { func (*ExecutionNodeStatus_Capability) ProtoMessage() {} func (x *ExecutionNodeStatus_Capability) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[54] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3355,7 +3419,7 @@ type ExecutionNodeStatus_ForkID struct { func (x *ExecutionNodeStatus_ForkID) Reset() { *x = ExecutionNodeStatus_ForkID{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[55] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3368,7 +3432,7 @@ func (x *ExecutionNodeStatus_ForkID) String() string { func (*ExecutionNodeStatus_ForkID) ProtoMessage() {} func (x *ExecutionNodeStatus_ForkID) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[55] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3762,395 +3826,416 @@ var file_pkg_proto_xatu_coordinator_proto_rawDesc = []byte{ 0x61, 0x74, 0x75, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x22, 0xe5, 0x10, 0x0a, - 0x0e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x24, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, - 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x6f, 0x6c, - 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, - 0x45, 0x78, 0x69, 0x74, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, - 0x5f, 0x45, 0x58, 0x49, 0x54, 0x12, 0x97, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, - 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, + 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x22, 0x91, 0x01, 0x0a, + 0x28, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x65, 0x0a, 0x1d, 0x62, 0x61, 0x63, + 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, + 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x72, 0x52, 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, + 0x22, 0xed, 0x11, 0x0a, 0x0e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x49, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, - 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x30, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, - 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x52, - 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, - 0x7a, 0x0a, 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, - 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x12, 0x97, 0x01, 0x0a, 0x25, - 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, - 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, - 0x67, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, - 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0xa7, 0x01, 0x0a, 0x2b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, - 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x6c, - 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x42, 0x6c, 0x73, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6e, + 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, + 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x12, 0x97, 0x01, 0x0a, 0x25, 0x65, 0x74, + 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, + 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x48, + 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, + 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, + 0x49, 0x4e, 0x47, 0x12, 0x7a, 0x0a, 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, + 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, - 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x12, - 0xa3, 0x01, 0x0a, 0x29, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, - 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, - 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, - 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x83, 0x01, 0x0a, 0x1e, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, - 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x77, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x48, 0x00, - 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, 0x4c, 0x12, 0x63, 0x0a, 0x13, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x12, + 0x97, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, + 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x34, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, + 0x73, 0x68, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, 0x52, + 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0xa7, 0x01, 0x0a, 0x2b, 0x65, 0x74, + 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6c, 0x73, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x36, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, + 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, + 0x4e, 0x47, 0x45, 0x12, 0xa3, 0x01, 0x0a, 0x29, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, + 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, + 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x83, 0x01, 0x0a, 0x1e, 0x65, 0x74, + 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, + 0x61, 0x6c, 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, + 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, 0x4c, 0x12, + 0x63, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, + 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x77, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, + 0x61, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, - 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, - 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x12, 0x77, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, - 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, - 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, - 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x73, 0x0a, 0x1b, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x5f, 0x64, 0x75, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1f, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x12, 0xa6, - 0x01, 0x0a, 0x2a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, - 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, - 0x52, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, - 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x72, 0x0a, 0x18, 0x65, 0x74, 0x68, 0x5f, 0x76, - 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, - 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x12, 0x6f, 0x0a, 0x17, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x48, 0x00, 0x52, 0x22, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, 0x7d, 0x0a, 0x1c, - 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, + 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x73, 0x0a, + 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x75, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, - 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, - 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, 0x8e, 0x01, 0x0a, 0x22, - 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, - 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x79, - 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x2d, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, - 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x59, - 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x42, 0x06, 0x0a, 0x04, - 0x44, 0x61, 0x74, 0x61, 0x22, 0x5f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, - 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, - 0x24, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x4d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x6e, - 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x30, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, - 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4f, 0x0a, 0x1b, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x61, - 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, - 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x1e, 0x0a, 0x1c, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, - 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x0a, 0x16, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, - 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x12, - 0x21, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x6c, - 0x6f, 0x74, 0x22, 0x5d, 0x0a, 0x1c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, - 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x64, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x52, - 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x4d, - 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x0a, 0x73, 0x6c, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x72, 0x22, 0x65, 0x0a, 0x24, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, - 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, - 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, - 0x6f, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x0a, 0x73, 0x6c, - 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x22, 0xfb, 0x02, 0x0a, 0x14, 0x52, 0x65, 0x6c, - 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, - 0x74, 0x61, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, - 0x10, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x6c, 0x61, 0x79, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x6c, - 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, - 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x50, 0x0a, 0x09, 0x62, 0x69, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, - 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x69, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x17, 0x52, 0x45, 0x4c, - 0x41, 0x59, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x42, 0x49, 0x44, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x12, 0x68, 0x0a, 0x11, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, - 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, - 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x1f, 0x52, - 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x50, 0x41, 0x59, - 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x42, 0x06, - 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0xc1, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x65, 0x74, - 0x61, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x59, 0x0a, 0x1f, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, - 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, - 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x21, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, - 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x24, 0x0a, 0x22, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, - 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x83, 0x06, 0x0a, 0x0a, 0x43, 0x61, 0x6e, - 0x6e, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, - 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x10, 0x00, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, + 0x63, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x48, + 0x00, 0x52, 0x1f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, + 0x54, 0x59, 0x12, 0xa6, 0x01, 0x0a, 0x2a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6c, 0x61, 0x62, 0x6f, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, + 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6c, 0x61, + 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, + 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, + 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x72, 0x0a, 0x18, 0x65, + 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x12, + 0x6f, 0x0a, 0x17, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x48, 0x00, 0x52, 0x22, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, + 0x12, 0x7d, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, + 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, + 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x74, 0x65, 0x65, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, + 0x8e, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x48, + 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, + 0x4b, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, + 0x12, 0x85, 0x01, 0x0a, 0x1f, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, - 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x01, - 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x10, 0x02, 0x12, 0x34, 0x0a, 0x30, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x43, 0x43, + 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x42, 0x06, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, + 0x22, 0x5f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x4d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, + 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x4f, 0x0a, 0x1b, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x30, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x1e, 0x0a, 0x1c, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, + 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x3b, 0x0a, 0x16, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, + 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x6c, 0x6f, 0x74, 0x22, 0x5d, + 0x0a, 0x1c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x12, 0x3d, + 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, + 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x72, 0x52, 0x0a, 0x73, 0x6c, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x22, 0x65, 0x0a, + 0x24, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x69, + 0x76, 0x65, 0x72, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x53, 0x6c, + 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x0a, 0x73, 0x6c, 0x6f, 0x74, 0x4d, 0x61, + 0x72, 0x6b, 0x65, 0x72, 0x22, 0xfb, 0x02, 0x0a, 0x14, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, + 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, + 0x11, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x65, 0x74, + 0x61, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x50, + 0x0a, 0x09, 0x62, 0x69, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, + 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x64, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x17, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x4d, + 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x42, 0x49, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x12, 0x68, 0x0a, 0x11, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x69, + 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, + 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x1f, 0x52, 0x45, 0x4c, 0x41, 0x59, + 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, + 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x42, 0x06, 0x0a, 0x04, 0x44, 0x61, + 0x74, 0x61, 0x22, 0xc1, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, + 0x61, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, + 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x59, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, + 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x5b, 0x0a, 0x21, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, + 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x24, + 0x0a, 0x22, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0xb3, 0x06, 0x0a, 0x0a, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, + 0x45, 0x58, 0x49, 0x54, 0x10, 0x00, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, + 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, - 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, - 0x10, 0x03, 0x12, 0x3a, 0x0a, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, 0x43, - 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x04, 0x12, 0x38, - 0x0a, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, 0x41, 0x43, + 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, + 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x10, 0x02, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, - 0x52, 0x41, 0x57, 0x41, 0x4c, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, + 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x3a, + 0x0a, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x04, 0x12, 0x38, 0x0a, 0x34, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, + 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, + 0x4c, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x07, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, + 0x10, 0x09, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, + 0x5f, 0x44, 0x55, 0x54, 0x59, 0x10, 0x0a, 0x12, 0x39, 0x0a, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x07, 0x12, 0x29, 0x0a, 0x25, 0x42, + 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, + 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x10, 0x0b, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, + 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x10, 0x0c, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, - 0x45, 0x43, 0x41, 0x52, 0x10, 0x09, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, - 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x10, 0x0a, 0x12, 0x39, 0x0a, 0x35, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, - 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, - 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0b, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x10, 0x0c, 0x12, - 0x26, 0x0a, 0x22, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, - 0x49, 0x54, 0x54, 0x45, 0x45, 0x10, 0x0d, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, - 0x45, 0x45, 0x10, 0x0e, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, - 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, 0x0f, 0x22, 0x04, 0x08, 0x08, 0x10, 0x08, 0x2a, 0x1f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x50, 0x52, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, - 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x2a, 0x54, - 0x0a, 0x10, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, - 0x54, 0x4f, 0x52, 0x5f, 0x42, 0x49, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x00, 0x12, - 0x23, 0x0a, 0x1f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, - 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, - 0x45, 0x44, 0x10, 0x01, 0x32, 0xfb, 0x0d, 0x0a, 0x0b, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x6f, 0x72, 0x12, 0x56, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, - 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x1e, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x80, 0x01, 0x0a, - 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, + 0x45, 0x10, 0x0d, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x10, 0x0e, + 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, + 0x43, 0x4b, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, + 0x45, 0x10, 0x0f, 0x12, 0x2e, 0x0a, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, + 0x54, 0x10, 0x10, 0x22, 0x04, 0x08, 0x08, 0x10, 0x08, 0x2a, 0x1f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x50, 0x52, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4c, 0x41, 0x53, + 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x2a, 0x54, 0x0a, 0x10, 0x52, 0x65, + 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, + 0x0a, 0x17, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, + 0x42, 0x49, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x52, + 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x50, 0x41, 0x59, + 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x01, + 0x32, 0xfb, 0x0d, 0x0a, 0x0b, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x56, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x1e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x80, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x2c, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x80, 0x01, 0x0a, 0x1f, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7d, + 0x0a, 0x1e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, - 0x12, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x6c, - 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x6c, 0x6c, 0x65, - 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x80, 0x01, 0x0a, 0x1f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, + 0x12, 0x2b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x7d, 0x0a, 0x1e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x73, 0x12, 0x2b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6f, 0x6f, 0x72, - 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x80, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x6c, 0x6c, 0x65, - 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, - 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, - 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x80, 0x01, 0x0a, 0x1f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, - 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x86, 0x01, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0x2e, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x65, - 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x65, + 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x80, 0x01, + 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x43, 0x6f, 0x6e, + 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x12, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, + 0x6c, 0x6c, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, + 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x6c, 0x6c, + 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x80, 0x01, 0x0a, 0x1f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x7d, 0x0a, 0x1e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x43, 0x6f, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x86, 0x01, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x12, 0x2b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x65, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4e, - 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4e, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, - 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x80, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x44, 0x69, - 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2c, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x80, 0x01, 0x0a, 0x1f, 0x47, 0x65, - 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, - 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2c, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, - 0x79, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, - 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x11, - 0x47, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x6e, - 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x6e, - 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x14, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x61, - 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, - 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x61, 0x6e, - 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, - 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, - 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x71, 0x0a, 0x1a, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, - 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, - 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x55, 0x70, - 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, - 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x78, 0x61, 0x74, 0x75, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, + 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, + 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7d, 0x0a, 0x1e, + 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, + 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x2b, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, + 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x16, 0x47, + 0x65, 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x47, 0x65, 0x74, + 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4e, 0x6f, + 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x80, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x79, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x47, 0x65, + 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x47, 0x65, 0x74, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x80, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, + 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, + 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, + 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x47, + 0x65, 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x73, 0x65, + 0x6e, 0x73, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, + 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x5f, 0x0a, 0x14, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x68, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, + 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, + 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x1a, 0x55, + 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, + 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, + 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, + 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2c, + 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, + 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, + 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -4166,7 +4251,7 @@ func file_pkg_proto_xatu_coordinator_proto_rawDescGZIP() []byte { } var file_pkg_proto_xatu_coordinator_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_pkg_proto_xatu_coordinator_proto_msgTypes = make([]protoimpl.MessageInfo, 56) +var file_pkg_proto_xatu_coordinator_proto_msgTypes = make([]protoimpl.MessageInfo, 57) var file_pkg_proto_xatu_coordinator_proto_goTypes = []any{ (CannonType)(0), // 0: xatu.CannonType (RelayMonitorType)(0), // 1: xatu.RelayMonitorType @@ -4211,30 +4296,31 @@ var file_pkg_proto_xatu_coordinator_proto_goTypes = []any{ (*CannonLocationEthV1BeaconCommittee)(nil), // 40: xatu.CannonLocationEthV1BeaconCommittee (*CannonLocationEthV1BeaconSyncCommittee)(nil), // 41: xatu.CannonLocationEthV1BeaconSyncCommittee (*CannonLocationEthV2BeaconBlockSyncAggregate)(nil), // 42: xatu.CannonLocationEthV2BeaconBlockSyncAggregate - (*CannonLocation)(nil), // 43: xatu.CannonLocation - (*GetCannonLocationRequest)(nil), // 44: xatu.GetCannonLocationRequest - (*GetCannonLocationResponse)(nil), // 45: xatu.GetCannonLocationResponse - (*UpsertCannonLocationRequest)(nil), // 46: xatu.UpsertCannonLocationRequest - (*UpsertCannonLocationResponse)(nil), // 47: xatu.UpsertCannonLocationResponse - (*RelayMonitorSlotMarker)(nil), // 48: xatu.RelayMonitorSlotMarker - (*RelayMonitorLocationBidTrace)(nil), // 49: xatu.RelayMonitorLocationBidTrace - (*RelayMonitorLocationPayloadDelivered)(nil), // 50: xatu.RelayMonitorLocationPayloadDelivered - (*RelayMonitorLocation)(nil), // 51: xatu.RelayMonitorLocation - (*GetRelayMonitorLocationRequest)(nil), // 52: xatu.GetRelayMonitorLocationRequest - (*GetRelayMonitorLocationResponse)(nil), // 53: xatu.GetRelayMonitorLocationResponse - (*UpsertRelayMonitorLocationRequest)(nil), // 54: xatu.UpsertRelayMonitorLocationRequest - (*UpsertRelayMonitorLocationResponse)(nil), // 55: xatu.UpsertRelayMonitorLocationResponse - (*ExecutionNodeStatus_Capability)(nil), // 56: xatu.ExecutionNodeStatus.Capability - (*ExecutionNodeStatus_ForkID)(nil), // 57: xatu.ExecutionNodeStatus.ForkID - (*timestamppb.Timestamp)(nil), // 58: google.protobuf.Timestamp + (*CannonLocationEthV2BeaconBlockAccessList)(nil), // 43: xatu.CannonLocationEthV2BeaconBlockAccessList + (*CannonLocation)(nil), // 44: xatu.CannonLocation + (*GetCannonLocationRequest)(nil), // 45: xatu.GetCannonLocationRequest + (*GetCannonLocationResponse)(nil), // 46: xatu.GetCannonLocationResponse + (*UpsertCannonLocationRequest)(nil), // 47: xatu.UpsertCannonLocationRequest + (*UpsertCannonLocationResponse)(nil), // 48: xatu.UpsertCannonLocationResponse + (*RelayMonitorSlotMarker)(nil), // 49: xatu.RelayMonitorSlotMarker + (*RelayMonitorLocationBidTrace)(nil), // 50: xatu.RelayMonitorLocationBidTrace + (*RelayMonitorLocationPayloadDelivered)(nil), // 51: xatu.RelayMonitorLocationPayloadDelivered + (*RelayMonitorLocation)(nil), // 52: xatu.RelayMonitorLocation + (*GetRelayMonitorLocationRequest)(nil), // 53: xatu.GetRelayMonitorLocationRequest + (*GetRelayMonitorLocationResponse)(nil), // 54: xatu.GetRelayMonitorLocationResponse + (*UpsertRelayMonitorLocationRequest)(nil), // 55: xatu.UpsertRelayMonitorLocationRequest + (*UpsertRelayMonitorLocationResponse)(nil), // 56: xatu.UpsertRelayMonitorLocationResponse + (*ExecutionNodeStatus_Capability)(nil), // 57: xatu.ExecutionNodeStatus.Capability + (*ExecutionNodeStatus_ForkID)(nil), // 58: xatu.ExecutionNodeStatus.ForkID + (*timestamppb.Timestamp)(nil), // 59: google.protobuf.Timestamp } var file_pkg_proto_xatu_coordinator_proto_depIdxs = []int32{ - 56, // 0: xatu.ExecutionNodeStatus.capabilities:type_name -> xatu.ExecutionNodeStatus.Capability - 57, // 1: xatu.ExecutionNodeStatus.fork_id:type_name -> xatu.ExecutionNodeStatus.ForkID + 57, // 0: xatu.ExecutionNodeStatus.capabilities:type_name -> xatu.ExecutionNodeStatus.Capability + 58, // 1: xatu.ExecutionNodeStatus.fork_id:type_name -> xatu.ExecutionNodeStatus.ForkID 6, // 2: xatu.CreateExecutionNodeRecordStatusRequest.status:type_name -> xatu.ExecutionNodeStatus 9, // 3: xatu.CoordinateExecutionNodeRecordsRequest.node_records:type_name -> xatu.CoordinatedNodeRecord - 58, // 4: xatu.ConsensusNodeStatus.finalized_epoch_start_date_time:type_name -> google.protobuf.Timestamp - 58, // 5: xatu.ConsensusNodeStatus.head_slot_start_date_time:type_name -> google.protobuf.Timestamp + 59, // 4: xatu.ConsensusNodeStatus.finalized_epoch_start_date_time:type_name -> google.protobuf.Timestamp + 59, // 5: xatu.ConsensusNodeStatus.head_slot_start_date_time:type_name -> google.protobuf.Timestamp 12, // 6: xatu.CreateConsensusNodeRecordStatusRequest.status:type_name -> xatu.ConsensusNodeStatus 12, // 7: xatu.CreateConsensusNodeRecordStatusesRequest.statuses:type_name -> xatu.ConsensusNodeStatus 9, // 8: xatu.CoordinateConsensusNodeRecordsRequest.node_records:type_name -> xatu.CoordinatedNodeRecord @@ -4253,68 +4339,70 @@ var file_pkg_proto_xatu_coordinator_proto_depIdxs = []int32{ 27, // 21: xatu.CannonLocationEthV1BeaconCommittee.backfilling_checkpoint_marker:type_name -> xatu.BackfillingCheckpointMarker 27, // 22: xatu.CannonLocationEthV1BeaconSyncCommittee.backfilling_checkpoint_marker:type_name -> xatu.BackfillingCheckpointMarker 27, // 23: xatu.CannonLocationEthV2BeaconBlockSyncAggregate.backfilling_checkpoint_marker:type_name -> xatu.BackfillingCheckpointMarker - 0, // 24: xatu.CannonLocation.type:type_name -> xatu.CannonType - 28, // 25: xatu.CannonLocation.eth_v2_beacon_block_voluntary_exit:type_name -> xatu.CannonLocationEthV2BeaconBlockVoluntaryExit - 29, // 26: xatu.CannonLocation.eth_v2_beacon_block_proposer_slashing:type_name -> xatu.CannonLocationEthV2BeaconBlockProposerSlashing - 30, // 27: xatu.CannonLocation.eth_v2_beacon_block_deposit:type_name -> xatu.CannonLocationEthV2BeaconBlockDeposit - 31, // 28: xatu.CannonLocation.eth_v2_beacon_block_attester_slashing:type_name -> xatu.CannonLocationEthV2BeaconBlockAttesterSlashing - 32, // 29: xatu.CannonLocation.eth_v2_beacon_block_bls_to_execution_change:type_name -> xatu.CannonLocationEthV2BeaconBlockBlsToExecutionChange - 33, // 30: xatu.CannonLocation.eth_v2_beacon_block_execution_transaction:type_name -> xatu.CannonLocationEthV2BeaconBlockExecutionTransaction - 34, // 31: xatu.CannonLocation.eth_v2_beacon_block_withdrawal:type_name -> xatu.CannonLocationEthV2BeaconBlockWithdrawal - 35, // 32: xatu.CannonLocation.eth_v2_beacon_block:type_name -> xatu.CannonLocationEthV2BeaconBlock - 36, // 33: xatu.CannonLocation.eth_v1_beacon_blob_sidecar:type_name -> xatu.CannonLocationEthV1BeaconBlobSidecar - 37, // 34: xatu.CannonLocation.eth_v1_beacon_proposer_duty:type_name -> xatu.CannonLocationEthV1BeaconProposerDuty - 38, // 35: xatu.CannonLocation.eth_v2_beacon_block_elaborated_attestation:type_name -> xatu.CannonLocationEthV2BeaconBlockElaboratedAttestation - 39, // 36: xatu.CannonLocation.eth_v1_beacon_validators:type_name -> xatu.CannonLocationEthV1BeaconValidators - 40, // 37: xatu.CannonLocation.eth_v1_beacon_committee:type_name -> xatu.CannonLocationEthV1BeaconCommittee - 41, // 38: xatu.CannonLocation.eth_v1_beacon_sync_committee:type_name -> xatu.CannonLocationEthV1BeaconSyncCommittee - 42, // 39: xatu.CannonLocation.eth_v2_beacon_block_sync_aggregate:type_name -> xatu.CannonLocationEthV2BeaconBlockSyncAggregate - 0, // 40: xatu.GetCannonLocationRequest.type:type_name -> xatu.CannonType - 43, // 41: xatu.GetCannonLocationResponse.location:type_name -> xatu.CannonLocation - 43, // 42: xatu.UpsertCannonLocationRequest.location:type_name -> xatu.CannonLocation - 48, // 43: xatu.RelayMonitorLocationBidTrace.slot_marker:type_name -> xatu.RelayMonitorSlotMarker - 48, // 44: xatu.RelayMonitorLocationPayloadDelivered.slot_marker:type_name -> xatu.RelayMonitorSlotMarker - 1, // 45: xatu.RelayMonitorLocation.type:type_name -> xatu.RelayMonitorType - 49, // 46: xatu.RelayMonitorLocation.bid_trace:type_name -> xatu.RelayMonitorLocationBidTrace - 50, // 47: xatu.RelayMonitorLocation.payload_delivered:type_name -> xatu.RelayMonitorLocationPayloadDelivered - 1, // 48: xatu.GetRelayMonitorLocationRequest.type:type_name -> xatu.RelayMonitorType - 51, // 49: xatu.GetRelayMonitorLocationResponse.location:type_name -> xatu.RelayMonitorLocation - 51, // 50: xatu.UpsertRelayMonitorLocationRequest.location:type_name -> xatu.RelayMonitorLocation - 2, // 51: xatu.Coordinator.CreateNodeRecords:input_type -> xatu.CreateNodeRecordsRequest - 4, // 52: xatu.Coordinator.ListStalledExecutionNodeRecords:input_type -> xatu.ListStalledExecutionNodeRecordsRequest - 7, // 53: xatu.Coordinator.CreateExecutionNodeRecordStatus:input_type -> xatu.CreateExecutionNodeRecordStatusRequest - 10, // 54: xatu.Coordinator.CoordinateExecutionNodeRecords:input_type -> xatu.CoordinateExecutionNodeRecordsRequest - 13, // 55: xatu.Coordinator.ListStalledConsensusNodeRecords:input_type -> xatu.ListStalledConsensusNodeRecordsRequest - 15, // 56: xatu.Coordinator.CreateConsensusNodeRecordStatus:input_type -> xatu.CreateConsensusNodeRecordStatusRequest - 17, // 57: xatu.Coordinator.CreateConsensusNodeRecordStatuses:input_type -> xatu.CreateConsensusNodeRecordStatusesRequest - 19, // 58: xatu.Coordinator.CoordinateConsensusNodeRecords:input_type -> xatu.CoordinateConsensusNodeRecordsRequest - 21, // 59: xatu.Coordinator.GetDiscoveryNodeRecord:input_type -> xatu.GetDiscoveryNodeRecordRequest - 23, // 60: xatu.Coordinator.GetDiscoveryExecutionNodeRecord:input_type -> xatu.GetDiscoveryExecutionNodeRecordRequest - 25, // 61: xatu.Coordinator.GetDiscoveryConsensusNodeRecord:input_type -> xatu.GetDiscoveryConsensusNodeRecordRequest - 44, // 62: xatu.Coordinator.GetCannonLocation:input_type -> xatu.GetCannonLocationRequest - 46, // 63: xatu.Coordinator.UpsertCannonLocation:input_type -> xatu.UpsertCannonLocationRequest - 52, // 64: xatu.Coordinator.GetRelayMonitorLocation:input_type -> xatu.GetRelayMonitorLocationRequest - 54, // 65: xatu.Coordinator.UpsertRelayMonitorLocation:input_type -> xatu.UpsertRelayMonitorLocationRequest - 3, // 66: xatu.Coordinator.CreateNodeRecords:output_type -> xatu.CreateNodeRecordsResponse - 5, // 67: xatu.Coordinator.ListStalledExecutionNodeRecords:output_type -> xatu.ListStalledExecutionNodeRecordsResponse - 8, // 68: xatu.Coordinator.CreateExecutionNodeRecordStatus:output_type -> xatu.CreateExecutionNodeRecordStatusResponse - 11, // 69: xatu.Coordinator.CoordinateExecutionNodeRecords:output_type -> xatu.CoordinateExecutionNodeRecordsResponse - 14, // 70: xatu.Coordinator.ListStalledConsensusNodeRecords:output_type -> xatu.ListStalledConsensusNodeRecordsResponse - 16, // 71: xatu.Coordinator.CreateConsensusNodeRecordStatus:output_type -> xatu.CreateConsensusNodeRecordStatusResponse - 18, // 72: xatu.Coordinator.CreateConsensusNodeRecordStatuses:output_type -> xatu.CreateConsensusNodeRecordStatusesResponse - 20, // 73: xatu.Coordinator.CoordinateConsensusNodeRecords:output_type -> xatu.CoordinateConsensusNodeRecordsResponse - 22, // 74: xatu.Coordinator.GetDiscoveryNodeRecord:output_type -> xatu.GetDiscoveryNodeRecordResponse - 24, // 75: xatu.Coordinator.GetDiscoveryExecutionNodeRecord:output_type -> xatu.GetDiscoveryExecutionNodeRecordResponse - 26, // 76: xatu.Coordinator.GetDiscoveryConsensusNodeRecord:output_type -> xatu.GetDiscoveryConsensusNodeRecordResponse - 45, // 77: xatu.Coordinator.GetCannonLocation:output_type -> xatu.GetCannonLocationResponse - 47, // 78: xatu.Coordinator.UpsertCannonLocation:output_type -> xatu.UpsertCannonLocationResponse - 53, // 79: xatu.Coordinator.GetRelayMonitorLocation:output_type -> xatu.GetRelayMonitorLocationResponse - 55, // 80: xatu.Coordinator.UpsertRelayMonitorLocation:output_type -> xatu.UpsertRelayMonitorLocationResponse - 66, // [66:81] is the sub-list for method output_type - 51, // [51:66] is the sub-list for method input_type - 51, // [51:51] is the sub-list for extension type_name - 51, // [51:51] is the sub-list for extension extendee - 0, // [0:51] is the sub-list for field type_name + 27, // 24: xatu.CannonLocationEthV2BeaconBlockAccessList.backfilling_checkpoint_marker:type_name -> xatu.BackfillingCheckpointMarker + 0, // 25: xatu.CannonLocation.type:type_name -> xatu.CannonType + 28, // 26: xatu.CannonLocation.eth_v2_beacon_block_voluntary_exit:type_name -> xatu.CannonLocationEthV2BeaconBlockVoluntaryExit + 29, // 27: xatu.CannonLocation.eth_v2_beacon_block_proposer_slashing:type_name -> xatu.CannonLocationEthV2BeaconBlockProposerSlashing + 30, // 28: xatu.CannonLocation.eth_v2_beacon_block_deposit:type_name -> xatu.CannonLocationEthV2BeaconBlockDeposit + 31, // 29: xatu.CannonLocation.eth_v2_beacon_block_attester_slashing:type_name -> xatu.CannonLocationEthV2BeaconBlockAttesterSlashing + 32, // 30: xatu.CannonLocation.eth_v2_beacon_block_bls_to_execution_change:type_name -> xatu.CannonLocationEthV2BeaconBlockBlsToExecutionChange + 33, // 31: xatu.CannonLocation.eth_v2_beacon_block_execution_transaction:type_name -> xatu.CannonLocationEthV2BeaconBlockExecutionTransaction + 34, // 32: xatu.CannonLocation.eth_v2_beacon_block_withdrawal:type_name -> xatu.CannonLocationEthV2BeaconBlockWithdrawal + 35, // 33: xatu.CannonLocation.eth_v2_beacon_block:type_name -> xatu.CannonLocationEthV2BeaconBlock + 36, // 34: xatu.CannonLocation.eth_v1_beacon_blob_sidecar:type_name -> xatu.CannonLocationEthV1BeaconBlobSidecar + 37, // 35: xatu.CannonLocation.eth_v1_beacon_proposer_duty:type_name -> xatu.CannonLocationEthV1BeaconProposerDuty + 38, // 36: xatu.CannonLocation.eth_v2_beacon_block_elaborated_attestation:type_name -> xatu.CannonLocationEthV2BeaconBlockElaboratedAttestation + 39, // 37: xatu.CannonLocation.eth_v1_beacon_validators:type_name -> xatu.CannonLocationEthV1BeaconValidators + 40, // 38: xatu.CannonLocation.eth_v1_beacon_committee:type_name -> xatu.CannonLocationEthV1BeaconCommittee + 41, // 39: xatu.CannonLocation.eth_v1_beacon_sync_committee:type_name -> xatu.CannonLocationEthV1BeaconSyncCommittee + 42, // 40: xatu.CannonLocation.eth_v2_beacon_block_sync_aggregate:type_name -> xatu.CannonLocationEthV2BeaconBlockSyncAggregate + 43, // 41: xatu.CannonLocation.eth_v2_beacon_block_access_list:type_name -> xatu.CannonLocationEthV2BeaconBlockAccessList + 0, // 42: xatu.GetCannonLocationRequest.type:type_name -> xatu.CannonType + 44, // 43: xatu.GetCannonLocationResponse.location:type_name -> xatu.CannonLocation + 44, // 44: xatu.UpsertCannonLocationRequest.location:type_name -> xatu.CannonLocation + 49, // 45: xatu.RelayMonitorLocationBidTrace.slot_marker:type_name -> xatu.RelayMonitorSlotMarker + 49, // 46: xatu.RelayMonitorLocationPayloadDelivered.slot_marker:type_name -> xatu.RelayMonitorSlotMarker + 1, // 47: xatu.RelayMonitorLocation.type:type_name -> xatu.RelayMonitorType + 50, // 48: xatu.RelayMonitorLocation.bid_trace:type_name -> xatu.RelayMonitorLocationBidTrace + 51, // 49: xatu.RelayMonitorLocation.payload_delivered:type_name -> xatu.RelayMonitorLocationPayloadDelivered + 1, // 50: xatu.GetRelayMonitorLocationRequest.type:type_name -> xatu.RelayMonitorType + 52, // 51: xatu.GetRelayMonitorLocationResponse.location:type_name -> xatu.RelayMonitorLocation + 52, // 52: xatu.UpsertRelayMonitorLocationRequest.location:type_name -> xatu.RelayMonitorLocation + 2, // 53: xatu.Coordinator.CreateNodeRecords:input_type -> xatu.CreateNodeRecordsRequest + 4, // 54: xatu.Coordinator.ListStalledExecutionNodeRecords:input_type -> xatu.ListStalledExecutionNodeRecordsRequest + 7, // 55: xatu.Coordinator.CreateExecutionNodeRecordStatus:input_type -> xatu.CreateExecutionNodeRecordStatusRequest + 10, // 56: xatu.Coordinator.CoordinateExecutionNodeRecords:input_type -> xatu.CoordinateExecutionNodeRecordsRequest + 13, // 57: xatu.Coordinator.ListStalledConsensusNodeRecords:input_type -> xatu.ListStalledConsensusNodeRecordsRequest + 15, // 58: xatu.Coordinator.CreateConsensusNodeRecordStatus:input_type -> xatu.CreateConsensusNodeRecordStatusRequest + 17, // 59: xatu.Coordinator.CreateConsensusNodeRecordStatuses:input_type -> xatu.CreateConsensusNodeRecordStatusesRequest + 19, // 60: xatu.Coordinator.CoordinateConsensusNodeRecords:input_type -> xatu.CoordinateConsensusNodeRecordsRequest + 21, // 61: xatu.Coordinator.GetDiscoveryNodeRecord:input_type -> xatu.GetDiscoveryNodeRecordRequest + 23, // 62: xatu.Coordinator.GetDiscoveryExecutionNodeRecord:input_type -> xatu.GetDiscoveryExecutionNodeRecordRequest + 25, // 63: xatu.Coordinator.GetDiscoveryConsensusNodeRecord:input_type -> xatu.GetDiscoveryConsensusNodeRecordRequest + 45, // 64: xatu.Coordinator.GetCannonLocation:input_type -> xatu.GetCannonLocationRequest + 47, // 65: xatu.Coordinator.UpsertCannonLocation:input_type -> xatu.UpsertCannonLocationRequest + 53, // 66: xatu.Coordinator.GetRelayMonitorLocation:input_type -> xatu.GetRelayMonitorLocationRequest + 55, // 67: xatu.Coordinator.UpsertRelayMonitorLocation:input_type -> xatu.UpsertRelayMonitorLocationRequest + 3, // 68: xatu.Coordinator.CreateNodeRecords:output_type -> xatu.CreateNodeRecordsResponse + 5, // 69: xatu.Coordinator.ListStalledExecutionNodeRecords:output_type -> xatu.ListStalledExecutionNodeRecordsResponse + 8, // 70: xatu.Coordinator.CreateExecutionNodeRecordStatus:output_type -> xatu.CreateExecutionNodeRecordStatusResponse + 11, // 71: xatu.Coordinator.CoordinateExecutionNodeRecords:output_type -> xatu.CoordinateExecutionNodeRecordsResponse + 14, // 72: xatu.Coordinator.ListStalledConsensusNodeRecords:output_type -> xatu.ListStalledConsensusNodeRecordsResponse + 16, // 73: xatu.Coordinator.CreateConsensusNodeRecordStatus:output_type -> xatu.CreateConsensusNodeRecordStatusResponse + 18, // 74: xatu.Coordinator.CreateConsensusNodeRecordStatuses:output_type -> xatu.CreateConsensusNodeRecordStatusesResponse + 20, // 75: xatu.Coordinator.CoordinateConsensusNodeRecords:output_type -> xatu.CoordinateConsensusNodeRecordsResponse + 22, // 76: xatu.Coordinator.GetDiscoveryNodeRecord:output_type -> xatu.GetDiscoveryNodeRecordResponse + 24, // 77: xatu.Coordinator.GetDiscoveryExecutionNodeRecord:output_type -> xatu.GetDiscoveryExecutionNodeRecordResponse + 26, // 78: xatu.Coordinator.GetDiscoveryConsensusNodeRecord:output_type -> xatu.GetDiscoveryConsensusNodeRecordResponse + 46, // 79: xatu.Coordinator.GetCannonLocation:output_type -> xatu.GetCannonLocationResponse + 48, // 80: xatu.Coordinator.UpsertCannonLocation:output_type -> xatu.UpsertCannonLocationResponse + 54, // 81: xatu.Coordinator.GetRelayMonitorLocation:output_type -> xatu.GetRelayMonitorLocationResponse + 56, // 82: xatu.Coordinator.UpsertRelayMonitorLocation:output_type -> xatu.UpsertRelayMonitorLocationResponse + 68, // [68:83] is the sub-list for method output_type + 53, // [53:68] is the sub-list for method input_type + 53, // [53:53] is the sub-list for extension type_name + 53, // [53:53] is the sub-list for extension extendee + 0, // [0:53] is the sub-list for field type_name } func init() { file_pkg_proto_xatu_coordinator_proto_init() } @@ -4816,7 +4904,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[41].Exporter = func(v any, i int) any { - switch v := v.(*CannonLocation); i { + switch v := v.(*CannonLocationEthV2BeaconBlockAccessList); i { case 0: return &v.state case 1: @@ -4828,7 +4916,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[42].Exporter = func(v any, i int) any { - switch v := v.(*GetCannonLocationRequest); i { + switch v := v.(*CannonLocation); i { case 0: return &v.state case 1: @@ -4840,7 +4928,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[43].Exporter = func(v any, i int) any { - switch v := v.(*GetCannonLocationResponse); i { + switch v := v.(*GetCannonLocationRequest); i { case 0: return &v.state case 1: @@ -4852,7 +4940,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[44].Exporter = func(v any, i int) any { - switch v := v.(*UpsertCannonLocationRequest); i { + switch v := v.(*GetCannonLocationResponse); i { case 0: return &v.state case 1: @@ -4864,7 +4952,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[45].Exporter = func(v any, i int) any { - switch v := v.(*UpsertCannonLocationResponse); i { + switch v := v.(*UpsertCannonLocationRequest); i { case 0: return &v.state case 1: @@ -4876,7 +4964,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[46].Exporter = func(v any, i int) any { - switch v := v.(*RelayMonitorSlotMarker); i { + switch v := v.(*UpsertCannonLocationResponse); i { case 0: return &v.state case 1: @@ -4888,7 +4976,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[47].Exporter = func(v any, i int) any { - switch v := v.(*RelayMonitorLocationBidTrace); i { + switch v := v.(*RelayMonitorSlotMarker); i { case 0: return &v.state case 1: @@ -4900,7 +4988,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[48].Exporter = func(v any, i int) any { - switch v := v.(*RelayMonitorLocationPayloadDelivered); i { + switch v := v.(*RelayMonitorLocationBidTrace); i { case 0: return &v.state case 1: @@ -4912,7 +5000,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[49].Exporter = func(v any, i int) any { - switch v := v.(*RelayMonitorLocation); i { + switch v := v.(*RelayMonitorLocationPayloadDelivered); i { case 0: return &v.state case 1: @@ -4924,7 +5012,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[50].Exporter = func(v any, i int) any { - switch v := v.(*GetRelayMonitorLocationRequest); i { + switch v := v.(*RelayMonitorLocation); i { case 0: return &v.state case 1: @@ -4936,7 +5024,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[51].Exporter = func(v any, i int) any { - switch v := v.(*GetRelayMonitorLocationResponse); i { + switch v := v.(*GetRelayMonitorLocationRequest); i { case 0: return &v.state case 1: @@ -4948,7 +5036,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[52].Exporter = func(v any, i int) any { - switch v := v.(*UpsertRelayMonitorLocationRequest); i { + switch v := v.(*GetRelayMonitorLocationResponse); i { case 0: return &v.state case 1: @@ -4960,7 +5048,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[53].Exporter = func(v any, i int) any { - switch v := v.(*UpsertRelayMonitorLocationResponse); i { + switch v := v.(*UpsertRelayMonitorLocationRequest); i { case 0: return &v.state case 1: @@ -4972,7 +5060,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[54].Exporter = func(v any, i int) any { - switch v := v.(*ExecutionNodeStatus_Capability); i { + switch v := v.(*UpsertRelayMonitorLocationResponse); i { case 0: return &v.state case 1: @@ -4984,6 +5072,18 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[55].Exporter = func(v any, i int) any { + switch v := v.(*ExecutionNodeStatus_Capability); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_xatu_coordinator_proto_msgTypes[56].Exporter = func(v any, i int) any { switch v := v.(*ExecutionNodeStatus_ForkID); i { case 0: return &v.state @@ -4996,7 +5096,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } } - file_pkg_proto_xatu_coordinator_proto_msgTypes[41].OneofWrappers = []any{ + file_pkg_proto_xatu_coordinator_proto_msgTypes[42].OneofWrappers = []any{ (*CannonLocation_EthV2BeaconBlockVoluntaryExit)(nil), (*CannonLocation_EthV2BeaconBlockProposerSlashing)(nil), (*CannonLocation_EthV2BeaconBlockDeposit)(nil), @@ -5012,8 +5112,9 @@ func file_pkg_proto_xatu_coordinator_proto_init() { (*CannonLocation_EthV1BeaconCommittee)(nil), (*CannonLocation_EthV1BeaconSyncCommittee)(nil), (*CannonLocation_EthV2BeaconBlockSyncAggregate)(nil), + (*CannonLocation_EthV2BeaconBlockAccessList)(nil), } - file_pkg_proto_xatu_coordinator_proto_msgTypes[49].OneofWrappers = []any{ + file_pkg_proto_xatu_coordinator_proto_msgTypes[50].OneofWrappers = []any{ (*RelayMonitorLocation_BidTrace)(nil), (*RelayMonitorLocation_PayloadDelivered)(nil), } @@ -5023,7 +5124,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pkg_proto_xatu_coordinator_proto_rawDesc, NumEnums: 2, - NumMessages: 56, + NumMessages: 57, NumExtensions: 0, NumServices: 1, }, diff --git a/pkg/proto/xatu/coordinator.proto b/pkg/proto/xatu/coordinator.proto index 0ef43a56e..4b77567c7 100644 --- a/pkg/proto/xatu/coordinator.proto +++ b/pkg/proto/xatu/coordinator.proto @@ -197,6 +197,7 @@ enum CannonType { BEACON_API_ETH_V1_BEACON_COMMITTEE = 13; BEACON_API_ETH_V1_BEACON_SYNC_COMMITTEE = 14; BEACON_API_ETH_V2_BEACON_BLOCK_SYNC_AGGREGATE = 15; + BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST = 16; } message BackfillingCheckpointMarker { @@ -275,6 +276,10 @@ message CannonLocationEthV2BeaconBlockSyncAggregate { BackfillingCheckpointMarker backfilling_checkpoint_marker = 1; } +message CannonLocationEthV2BeaconBlockAccessList { + BackfillingCheckpointMarker backfilling_checkpoint_marker = 1; +} + message CannonLocation { string network_id = 1; CannonType type = 2; @@ -318,6 +323,8 @@ message CannonLocation { [ json_name = "BEACON_API_ETH_V1_BEACON_SYNC_COMMITTEE" ]; CannonLocationEthV2BeaconBlockSyncAggregate eth_v2_beacon_block_sync_aggregate = 18 [ json_name = "BEACON_API_ETH_V2_BEACON_BLOCK_SYNC_AGGREGATE" ]; + CannonLocationEthV2BeaconBlockAccessList eth_v2_beacon_block_access_list = 19 + [ json_name = "BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST" ]; } } diff --git a/pkg/proto/xatu/event_ingester.pb.go b/pkg/proto/xatu/event_ingester.pb.go index c1bde83b0..045c95c20 100644 --- a/pkg/proto/xatu/event_ingester.pb.go +++ b/pkg/proto/xatu/event_ingester.pb.go @@ -172,6 +172,7 @@ const ( Event_BEACON_API_ETH_V2_BEACON_BLOCK_SYNC_AGGREGATE Event_Name = 86 Event_EXECUTION_BLOCK_METRICS Event_Name = 87 Event_LIBP2P_TRACE_IDENTIFY Event_Name = 88 + Event_BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST Event_Name = 89 ) // Enum value maps for Event_Name. @@ -265,6 +266,7 @@ var ( 86: "BEACON_API_ETH_V2_BEACON_BLOCK_SYNC_AGGREGATE", 87: "EXECUTION_BLOCK_METRICS", 88: "LIBP2P_TRACE_IDENTIFY", + 89: "BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST", } Event_Name_value = map[string]int32{ "BEACON_API_ETH_V1_EVENTS_UNKNOWN": 0, @@ -355,6 +357,7 @@ var ( "BEACON_API_ETH_V2_BEACON_BLOCK_SYNC_AGGREGATE": 86, "EXECUTION_BLOCK_METRICS": 87, "LIBP2P_TRACE_IDENTIFY": 88, + "BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST": 89, } ) @@ -2263,6 +2266,7 @@ type ClientMeta struct { // *ClientMeta_EthV1BeaconSyncCommittee // *ClientMeta_EthV2BeaconBlockSyncAggregate // *ClientMeta_Libp2PTraceIdentify + // *ClientMeta_EthV2BeaconBlockAccessList AdditionalData isClientMeta_AdditionalData `protobuf_oneof:"AdditionalData"` // ModuleName contains the name of the module that sent the event. ModuleName ModuleName `protobuf:"varint,63,opt,name=module_name,proto3,enum=xatu.ModuleName" json:"module_name,omitempty"` @@ -2932,6 +2936,13 @@ func (x *ClientMeta) GetLibp2PTraceIdentify() *ClientMeta_AdditionalLibP2PTraceI return nil } +func (x *ClientMeta) GetEthV2BeaconBlockAccessList() *ClientMeta_AdditionalEthV2BeaconBlockAccessListData { + if x, ok := x.GetAdditionalData().(*ClientMeta_EthV2BeaconBlockAccessList); ok { + return x.EthV2BeaconBlockAccessList + } + return nil +} + func (x *ClientMeta) GetModuleName() ModuleName { if x != nil { return x.ModuleName @@ -3386,6 +3397,12 @@ type ClientMeta_Libp2PTraceIdentify struct { Libp2PTraceIdentify *ClientMeta_AdditionalLibP2PTraceIdentifyData `protobuf:"bytes,94,opt,name=libp2p_trace_identify,json=LIBP2P_TRACE_IDENTIFY,proto3,oneof"` } +type ClientMeta_EthV2BeaconBlockAccessList struct { + // AdditionalEthV2BeaconBlockAccessListData contains additional data on + // block access list entries derived from beacon blocks. + EthV2BeaconBlockAccessList *ClientMeta_AdditionalEthV2BeaconBlockAccessListData `protobuf:"bytes,95,opt,name=eth_v2_beacon_block_access_list,json=BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST,proto3,oneof"` +} + func (*ClientMeta_EthV1EventsAttestation) isClientMeta_AdditionalData() {} func (*ClientMeta_EthV1EventsHead) isClientMeta_AdditionalData() {} @@ -3548,6 +3565,8 @@ func (*ClientMeta_EthV2BeaconBlockSyncAggregate) isClientMeta_AdditionalData() { func (*ClientMeta_Libp2PTraceIdentify) isClientMeta_AdditionalData() {} +func (*ClientMeta_EthV2BeaconBlockAccessList) isClientMeta_AdditionalData() {} + type ServerMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4143,6 +4162,7 @@ type DecoratedEvent struct { // *DecoratedEvent_EthV1BeaconSyncCommittee // *DecoratedEvent_EthV2BeaconBlockSyncAggregate // *DecoratedEvent_ExecutionBlockMetrics + // *DecoratedEvent_EthV2BeaconBlockAccessList Data isDecoratedEvent_Data `protobuf_oneof:"data"` } @@ -4812,6 +4832,13 @@ func (x *DecoratedEvent) GetExecutionBlockMetrics() *ExecutionBlockMetrics { return nil } +func (x *DecoratedEvent) GetEthV2BeaconBlockAccessList() *v1.BlockAccessListChange { + if x, ok := x.GetData().(*DecoratedEvent_EthV2BeaconBlockAccessList); ok { + return x.EthV2BeaconBlockAccessList + } + return nil +} + type isDecoratedEvent_Data interface { isDecoratedEvent_Data() } @@ -5173,6 +5200,10 @@ type DecoratedEvent_ExecutionBlockMetrics struct { ExecutionBlockMetrics *ExecutionBlockMetrics `protobuf:"bytes,209,opt,name=execution_block_metrics,json=EXECUTION_BLOCK_METRICS,proto3,oneof"` } +type DecoratedEvent_EthV2BeaconBlockAccessList struct { + EthV2BeaconBlockAccessList *v1.BlockAccessListChange `protobuf:"bytes,210,opt,name=eth_v2_beacon_block_access_list,json=BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST,proto3,oneof"` +} + func (*DecoratedEvent_EthV1EventsAttestation) isDecoratedEvent_Data() {} func (*DecoratedEvent_EthV1EventsBlock) isDecoratedEvent_Data() {} @@ -5345,6 +5376,8 @@ func (*DecoratedEvent_EthV2BeaconBlockSyncAggregate) isDecoratedEvent_Data() {} func (*DecoratedEvent_ExecutionBlockMetrics) isDecoratedEvent_Data() {} +func (*DecoratedEvent_EthV2BeaconBlockAccessList) isDecoratedEvent_Data() {} + type ClientMeta_Ethereum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -8187,6 +8220,57 @@ func (x *ClientMeta_AdditionalEthV2BeaconBlockWithdrawalData) GetBlock() *BlockI return nil } +// AdditionalEthV2BeaconBlockAccessListData contains additional data on +// block access list entries derived from beacon blocks. +type ClientMeta_AdditionalEthV2BeaconBlockAccessListData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Block contains the information about the block that we are deriving the + // access list from. + Block *BlockIdentifier `protobuf:"bytes,1,opt,name=block,proto3" json:"block,omitempty"` +} + +func (x *ClientMeta_AdditionalEthV2BeaconBlockAccessListData) Reset() { + *x = ClientMeta_AdditionalEthV2BeaconBlockAccessListData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientMeta_AdditionalEthV2BeaconBlockAccessListData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientMeta_AdditionalEthV2BeaconBlockAccessListData) ProtoMessage() {} + +func (x *ClientMeta_AdditionalEthV2BeaconBlockAccessListData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[71] + 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 ClientMeta_AdditionalEthV2BeaconBlockAccessListData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalEthV2BeaconBlockAccessListData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 43} +} + +func (x *ClientMeta_AdditionalEthV2BeaconBlockAccessListData) GetBlock() *BlockIdentifier { + if x != nil { + return x.Block + } + return nil +} + type ClientMeta_AttestationDataSnapshot struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -8206,7 +8290,7 @@ type ClientMeta_AttestationDataSnapshot struct { func (x *ClientMeta_AttestationDataSnapshot) Reset() { *x = ClientMeta_AttestationDataSnapshot{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[71] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8219,7 +8303,7 @@ func (x *ClientMeta_AttestationDataSnapshot) String() string { func (*ClientMeta_AttestationDataSnapshot) ProtoMessage() {} func (x *ClientMeta_AttestationDataSnapshot) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[71] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8232,7 +8316,7 @@ func (x *ClientMeta_AttestationDataSnapshot) ProtoReflect() protoreflect.Message // Deprecated: Use ClientMeta_AttestationDataSnapshot.ProtoReflect.Descriptor instead. func (*ClientMeta_AttestationDataSnapshot) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 43} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 44} } func (x *ClientMeta_AttestationDataSnapshot) GetRequestedAtSlotStartDiffMs() *wrapperspb.UInt64Value { @@ -8277,7 +8361,7 @@ type ClientMeta_AdditionalEthV1ValidatorAttestationDataData struct { func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) Reset() { *x = ClientMeta_AdditionalEthV1ValidatorAttestationDataData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[72] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8290,7 +8374,7 @@ func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) String() string func (*ClientMeta_AdditionalEthV1ValidatorAttestationDataData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[72] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8303,7 +8387,7 @@ func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) ProtoReflect() // Deprecated: Use ClientMeta_AdditionalEthV1ValidatorAttestationDataData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV1ValidatorAttestationDataData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 44} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 45} } func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) GetSource() *ClientMeta_AdditionalEthV1AttestationSourceV2Data { @@ -8358,7 +8442,7 @@ type ClientMeta_AdditionalEthV1EventsBlobSidecarData struct { func (x *ClientMeta_AdditionalEthV1EventsBlobSidecarData) Reset() { *x = ClientMeta_AdditionalEthV1EventsBlobSidecarData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[73] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8371,7 +8455,7 @@ func (x *ClientMeta_AdditionalEthV1EventsBlobSidecarData) String() string { func (*ClientMeta_AdditionalEthV1EventsBlobSidecarData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV1EventsBlobSidecarData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[73] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8384,7 +8468,7 @@ func (x *ClientMeta_AdditionalEthV1EventsBlobSidecarData) ProtoReflect() protore // Deprecated: Use ClientMeta_AdditionalEthV1EventsBlobSidecarData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV1EventsBlobSidecarData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 45} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 46} } func (x *ClientMeta_AdditionalEthV1EventsBlobSidecarData) GetEpoch() *EpochV2 { @@ -8425,7 +8509,7 @@ type ClientMeta_AdditionalEthV1EventsDataColumnSidecarData struct { func (x *ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) Reset() { *x = ClientMeta_AdditionalEthV1EventsDataColumnSidecarData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[74] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8438,7 +8522,7 @@ func (x *ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) String() string func (*ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[74] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8451,7 +8535,7 @@ func (x *ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) ProtoReflect() p // Deprecated: Use ClientMeta_AdditionalEthV1EventsDataColumnSidecarData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 46} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 47} } func (x *ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) GetEpoch() *EpochV2 { @@ -8495,7 +8579,7 @@ type ClientMeta_AdditionalEthV1BeaconBlobSidecarData struct { func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) Reset() { *x = ClientMeta_AdditionalEthV1BeaconBlobSidecarData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[75] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8508,7 +8592,7 @@ func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) String() string { func (*ClientMeta_AdditionalEthV1BeaconBlobSidecarData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[75] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8521,7 +8605,7 @@ func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) ProtoReflect() protore // Deprecated: Use ClientMeta_AdditionalEthV1BeaconBlobSidecarData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV1BeaconBlobSidecarData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 47} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 48} } func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) GetEpoch() *EpochV2 { @@ -8590,7 +8674,7 @@ type ClientMeta_AdditionalBeaconP2PAttestationData struct { func (x *ClientMeta_AdditionalBeaconP2PAttestationData) Reset() { *x = ClientMeta_AdditionalBeaconP2PAttestationData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[76] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8603,7 +8687,7 @@ func (x *ClientMeta_AdditionalBeaconP2PAttestationData) String() string { func (*ClientMeta_AdditionalBeaconP2PAttestationData) ProtoMessage() {} func (x *ClientMeta_AdditionalBeaconP2PAttestationData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[76] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8616,7 +8700,7 @@ func (x *ClientMeta_AdditionalBeaconP2PAttestationData) ProtoReflect() protorefl // Deprecated: Use ClientMeta_AdditionalBeaconP2PAttestationData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalBeaconP2PAttestationData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 48} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 49} } func (x *ClientMeta_AdditionalBeaconP2PAttestationData) GetSource() *ClientMeta_AdditionalEthV1AttestationSourceV2Data { @@ -8700,7 +8784,7 @@ type ClientMeta_AdditionalEthV1ProposerDutyData struct { func (x *ClientMeta_AdditionalEthV1ProposerDutyData) Reset() { *x = ClientMeta_AdditionalEthV1ProposerDutyData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[77] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8713,7 +8797,7 @@ func (x *ClientMeta_AdditionalEthV1ProposerDutyData) String() string { func (*ClientMeta_AdditionalEthV1ProposerDutyData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV1ProposerDutyData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[77] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8726,7 +8810,7 @@ func (x *ClientMeta_AdditionalEthV1ProposerDutyData) ProtoReflect() protoreflect // Deprecated: Use ClientMeta_AdditionalEthV1ProposerDutyData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV1ProposerDutyData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 49} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 50} } func (x *ClientMeta_AdditionalEthV1ProposerDutyData) GetEpoch() *EpochV2 { @@ -8774,7 +8858,7 @@ type ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData struct { func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) Reset() { *x = ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[78] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8787,7 +8871,7 @@ func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) String( func (*ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[78] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8800,7 +8884,7 @@ func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) ProtoRe // Deprecated: Use ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 50} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 51} } func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) GetBlock() *BlockIdentifier { @@ -8857,7 +8941,7 @@ type ClientMeta_AdditionalLibP2PTraceAddPeerData struct { func (x *ClientMeta_AdditionalLibP2PTraceAddPeerData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceAddPeerData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[79] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8870,7 +8954,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceAddPeerData) String() string { func (*ClientMeta_AdditionalLibP2PTraceAddPeerData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceAddPeerData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[79] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8883,7 +8967,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceAddPeerData) ProtoReflect() protoreflec // Deprecated: Use ClientMeta_AdditionalLibP2PTraceAddPeerData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceAddPeerData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 51} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 52} } func (x *ClientMeta_AdditionalLibP2PTraceAddPeerData) GetMetadata() *libp2p.TraceEventMetadata { @@ -8905,7 +8989,7 @@ type ClientMeta_AdditionalLibP2PTraceRemovePeerData struct { func (x *ClientMeta_AdditionalLibP2PTraceRemovePeerData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceRemovePeerData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[80] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8918,7 +9002,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRemovePeerData) String() string { func (*ClientMeta_AdditionalLibP2PTraceRemovePeerData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceRemovePeerData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[80] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8931,7 +9015,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRemovePeerData) ProtoReflect() protoref // Deprecated: Use ClientMeta_AdditionalLibP2PTraceRemovePeerData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceRemovePeerData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 52} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 53} } func (x *ClientMeta_AdditionalLibP2PTraceRemovePeerData) GetMetadata() *libp2p.TraceEventMetadata { @@ -8953,7 +9037,7 @@ type ClientMeta_AdditionalLibP2PTraceRecvRPCData struct { func (x *ClientMeta_AdditionalLibP2PTraceRecvRPCData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceRecvRPCData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[81] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8966,7 +9050,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRecvRPCData) String() string { func (*ClientMeta_AdditionalLibP2PTraceRecvRPCData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceRecvRPCData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[81] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8979,7 +9063,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRecvRPCData) ProtoReflect() protoreflec // Deprecated: Use ClientMeta_AdditionalLibP2PTraceRecvRPCData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceRecvRPCData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 53} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 54} } func (x *ClientMeta_AdditionalLibP2PTraceRecvRPCData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9001,7 +9085,7 @@ type ClientMeta_AdditionalLibP2PTraceSendRPCData struct { func (x *ClientMeta_AdditionalLibP2PTraceSendRPCData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceSendRPCData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[82] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9014,7 +9098,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceSendRPCData) String() string { func (*ClientMeta_AdditionalLibP2PTraceSendRPCData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceSendRPCData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[82] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9027,7 +9111,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceSendRPCData) ProtoReflect() protoreflec // Deprecated: Use ClientMeta_AdditionalLibP2PTraceSendRPCData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceSendRPCData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 54} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 55} } func (x *ClientMeta_AdditionalLibP2PTraceSendRPCData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9049,7 +9133,7 @@ type ClientMeta_AdditionalLibP2PTraceDropRPCData struct { func (x *ClientMeta_AdditionalLibP2PTraceDropRPCData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceDropRPCData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[83] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9062,7 +9146,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceDropRPCData) String() string { func (*ClientMeta_AdditionalLibP2PTraceDropRPCData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceDropRPCData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[83] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9075,7 +9159,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceDropRPCData) ProtoReflect() protoreflec // Deprecated: Use ClientMeta_AdditionalLibP2PTraceDropRPCData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceDropRPCData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 55} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 56} } func (x *ClientMeta_AdditionalLibP2PTraceDropRPCData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9097,7 +9181,7 @@ type ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData struct { func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[84] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9110,7 +9194,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) String() strin func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[84] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9123,7 +9207,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) ProtoReflect() // Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 56} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 57} } func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9145,7 +9229,7 @@ type ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData struct { func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[85] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9158,7 +9242,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData) String() strin func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[85] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9171,7 +9255,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData) ProtoReflect() // Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 57} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 58} } func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9193,7 +9277,7 @@ type ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData struct { func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[86] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9206,7 +9290,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) String() s func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[86] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9219,7 +9303,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) ProtoRefle // Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 58} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 59} } func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9241,7 +9325,7 @@ type ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData struct { func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[87] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9254,7 +9338,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) String() strin func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[87] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9267,7 +9351,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) ProtoReflect() // Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 59} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 60} } func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9289,7 +9373,7 @@ type ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData struct { func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[88] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9302,7 +9386,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) String() strin func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[88] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9315,7 +9399,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) ProtoReflect() // Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 60} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 61} } func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9337,7 +9421,7 @@ type ClientMeta_AdditionalLibP2PTraceJoinData struct { func (x *ClientMeta_AdditionalLibP2PTraceJoinData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceJoinData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[89] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9350,7 +9434,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceJoinData) String() string { func (*ClientMeta_AdditionalLibP2PTraceJoinData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceJoinData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[89] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9363,7 +9447,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceJoinData) ProtoReflect() protoreflect.M // Deprecated: Use ClientMeta_AdditionalLibP2PTraceJoinData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceJoinData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 61} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 62} } func (x *ClientMeta_AdditionalLibP2PTraceJoinData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9385,7 +9469,7 @@ type ClientMeta_AdditionalLibP2PTraceLeaveData struct { func (x *ClientMeta_AdditionalLibP2PTraceLeaveData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceLeaveData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[90] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9398,7 +9482,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceLeaveData) String() string { func (*ClientMeta_AdditionalLibP2PTraceLeaveData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceLeaveData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[90] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9411,7 +9495,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceLeaveData) ProtoReflect() protoreflect. // Deprecated: Use ClientMeta_AdditionalLibP2PTraceLeaveData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceLeaveData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 62} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 63} } func (x *ClientMeta_AdditionalLibP2PTraceLeaveData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9433,7 +9517,7 @@ type ClientMeta_AdditionalLibP2PTraceGraftData struct { func (x *ClientMeta_AdditionalLibP2PTraceGraftData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceGraftData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[91] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9446,7 +9530,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceGraftData) String() string { func (*ClientMeta_AdditionalLibP2PTraceGraftData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceGraftData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[91] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9459,7 +9543,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceGraftData) ProtoReflect() protoreflect. // Deprecated: Use ClientMeta_AdditionalLibP2PTraceGraftData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceGraftData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 63} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 64} } func (x *ClientMeta_AdditionalLibP2PTraceGraftData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9481,7 +9565,7 @@ type ClientMeta_AdditionalLibP2PTracePruneData struct { func (x *ClientMeta_AdditionalLibP2PTracePruneData) Reset() { *x = ClientMeta_AdditionalLibP2PTracePruneData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[92] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9494,7 +9578,7 @@ func (x *ClientMeta_AdditionalLibP2PTracePruneData) String() string { func (*ClientMeta_AdditionalLibP2PTracePruneData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTracePruneData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[92] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9507,7 +9591,7 @@ func (x *ClientMeta_AdditionalLibP2PTracePruneData) ProtoReflect() protoreflect. // Deprecated: Use ClientMeta_AdditionalLibP2PTracePruneData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTracePruneData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 64} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 65} } func (x *ClientMeta_AdditionalLibP2PTracePruneData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9529,7 +9613,7 @@ type ClientMeta_AdditionalLibP2PTraceDuplicateMessageData struct { func (x *ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceDuplicateMessageData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[93] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9542,7 +9626,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) String() string { func (*ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[93] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9555,7 +9639,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) ProtoReflect() pr // Deprecated: Use ClientMeta_AdditionalLibP2PTraceDuplicateMessageData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 65} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 66} } func (x *ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9577,7 +9661,7 @@ type ClientMeta_AdditionalLibP2PTraceDeliverMessageData struct { func (x *ClientMeta_AdditionalLibP2PTraceDeliverMessageData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceDeliverMessageData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[94] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9590,7 +9674,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceDeliverMessageData) String() string { func (*ClientMeta_AdditionalLibP2PTraceDeliverMessageData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceDeliverMessageData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[94] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9603,7 +9687,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceDeliverMessageData) ProtoReflect() prot // Deprecated: Use ClientMeta_AdditionalLibP2PTraceDeliverMessageData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceDeliverMessageData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 66} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 67} } func (x *ClientMeta_AdditionalLibP2PTraceDeliverMessageData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9625,7 +9709,7 @@ type ClientMeta_AdditionalLibP2PTracePublishMessageData struct { func (x *ClientMeta_AdditionalLibP2PTracePublishMessageData) Reset() { *x = ClientMeta_AdditionalLibP2PTracePublishMessageData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[95] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9638,7 +9722,7 @@ func (x *ClientMeta_AdditionalLibP2PTracePublishMessageData) String() string { func (*ClientMeta_AdditionalLibP2PTracePublishMessageData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTracePublishMessageData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[95] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9651,7 +9735,7 @@ func (x *ClientMeta_AdditionalLibP2PTracePublishMessageData) ProtoReflect() prot // Deprecated: Use ClientMeta_AdditionalLibP2PTracePublishMessageData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTracePublishMessageData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 67} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 68} } func (x *ClientMeta_AdditionalLibP2PTracePublishMessageData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9673,7 +9757,7 @@ type ClientMeta_AdditionalLibP2PTraceRejectMessageData struct { func (x *ClientMeta_AdditionalLibP2PTraceRejectMessageData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceRejectMessageData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[96] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9686,7 +9770,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRejectMessageData) String() string { func (*ClientMeta_AdditionalLibP2PTraceRejectMessageData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceRejectMessageData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[96] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9699,7 +9783,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRejectMessageData) ProtoReflect() proto // Deprecated: Use ClientMeta_AdditionalLibP2PTraceRejectMessageData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceRejectMessageData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 68} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 69} } func (x *ClientMeta_AdditionalLibP2PTraceRejectMessageData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9721,7 +9805,7 @@ type ClientMeta_AdditionalLibP2PTraceConnectedData struct { func (x *ClientMeta_AdditionalLibP2PTraceConnectedData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceConnectedData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[97] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9734,7 +9818,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceConnectedData) String() string { func (*ClientMeta_AdditionalLibP2PTraceConnectedData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceConnectedData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[97] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9747,7 +9831,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceConnectedData) ProtoReflect() protorefl // Deprecated: Use ClientMeta_AdditionalLibP2PTraceConnectedData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceConnectedData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 69} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 70} } func (x *ClientMeta_AdditionalLibP2PTraceConnectedData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9769,7 +9853,7 @@ type ClientMeta_AdditionalLibP2PTraceDisconnectedData struct { func (x *ClientMeta_AdditionalLibP2PTraceDisconnectedData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceDisconnectedData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[98] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9782,7 +9866,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceDisconnectedData) String() string { func (*ClientMeta_AdditionalLibP2PTraceDisconnectedData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceDisconnectedData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[98] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9795,7 +9879,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceDisconnectedData) ProtoReflect() protor // Deprecated: Use ClientMeta_AdditionalLibP2PTraceDisconnectedData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceDisconnectedData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 70} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 71} } func (x *ClientMeta_AdditionalLibP2PTraceDisconnectedData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9817,7 +9901,7 @@ type ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData struct { func (x *ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[99] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9830,7 +9914,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) String() string func (*ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[99] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9843,7 +9927,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) ProtoReflect() // Deprecated: Use ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 71} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 72} } func (x *ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9865,7 +9949,7 @@ type ClientMeta_AdditionalLibP2PTraceHandleMetadataData struct { func (x *ClientMeta_AdditionalLibP2PTraceHandleMetadataData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceHandleMetadataData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[100] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9878,7 +9962,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceHandleMetadataData) String() string { func (*ClientMeta_AdditionalLibP2PTraceHandleMetadataData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceHandleMetadataData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[100] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9891,7 +9975,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceHandleMetadataData) ProtoReflect() prot // Deprecated: Use ClientMeta_AdditionalLibP2PTraceHandleMetadataData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceHandleMetadataData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 72} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 73} } func (x *ClientMeta_AdditionalLibP2PTraceHandleMetadataData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9913,7 +9997,7 @@ type ClientMeta_AdditionalLibP2PTraceHandleStatusData struct { func (x *ClientMeta_AdditionalLibP2PTraceHandleStatusData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceHandleStatusData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[101] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9926,7 +10010,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceHandleStatusData) String() string { func (*ClientMeta_AdditionalLibP2PTraceHandleStatusData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceHandleStatusData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[101] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9939,7 +10023,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceHandleStatusData) ProtoReflect() protor // Deprecated: Use ClientMeta_AdditionalLibP2PTraceHandleStatusData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceHandleStatusData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 73} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 74} } func (x *ClientMeta_AdditionalLibP2PTraceHandleStatusData) GetMetadata() *libp2p.TraceEventMetadata { @@ -9960,7 +10044,7 @@ type ClientMeta_AdditionalLibP2PTraceIdentifyData struct { func (x *ClientMeta_AdditionalLibP2PTraceIdentifyData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceIdentifyData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[102] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9973,7 +10057,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceIdentifyData) String() string { func (*ClientMeta_AdditionalLibP2PTraceIdentifyData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceIdentifyData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[102] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9986,7 +10070,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceIdentifyData) ProtoReflect() protorefle // Deprecated: Use ClientMeta_AdditionalLibP2PTraceIdentifyData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceIdentifyData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 74} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 75} } func (x *ClientMeta_AdditionalLibP2PTraceIdentifyData) GetMetadata() *libp2p.TraceEventMetadata { @@ -10016,7 +10100,7 @@ type ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData struct { func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[103] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10029,7 +10113,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) String() func (*ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[103] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10042,7 +10126,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) ProtoRef // Deprecated: Use ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 75} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 76} } func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) GetMetadata() *libp2p.TraceEventMetadata { @@ -10092,7 +10176,7 @@ type ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData struct { func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[104] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10105,7 +10189,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) String() strin func (*ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[104] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10118,7 +10202,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) ProtoReflect() // Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 76} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 77} } func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) GetMetadata() *libp2p.TraceEventMetadata { @@ -10140,7 +10224,7 @@ type ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData struct { func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[105] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10153,7 +10237,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) String() string { func (*ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[105] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10166,7 +10250,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) ProtoReflect() prot // Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 77} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 78} } func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) GetMetadata() *libp2p.TraceEventMetadata { @@ -10205,7 +10289,7 @@ type ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData struct { func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[106] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10218,7 +10302,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) String() stri func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[106] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10231,7 +10315,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) ProtoReflect( // Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 78} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 79} } func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) GetEpoch() *EpochV2 { @@ -10309,7 +10393,7 @@ type ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData struct func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[107] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10322,7 +10406,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) S func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[107] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10335,7 +10419,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) P // Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 79} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 80} } func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) GetEpoch() *EpochV2 { @@ -10357,7 +10441,7 @@ type ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData struct func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[108] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10370,7 +10454,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) S func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[108] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10383,7 +10467,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) P // Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 80} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 81} } func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) GetEpoch() *EpochV2 { @@ -10430,7 +10514,7 @@ type ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData struct { func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[109] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10443,7 +10527,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) String( func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[109] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10456,7 +10540,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) ProtoRe // Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 81} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 82} } func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetSource() *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData { @@ -10573,7 +10657,7 @@ type ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData struct { func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[110] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10586,7 +10670,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) String( func (*ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[110] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10599,7 +10683,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) ProtoRe // Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 82} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 83} } func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetEpoch() *EpochV2 { @@ -10700,7 +10784,7 @@ type ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData struct { func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[111] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10713,7 +10797,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) String() stri func (*ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[111] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10726,7 +10810,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) ProtoReflect( // Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 83} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 84} } func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) GetEpoch() *EpochV2 { @@ -10820,7 +10904,7 @@ type ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData struct { func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) Reset() { *x = ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[112] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10833,7 +10917,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) String( func (*ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) ProtoMessage() {} func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[112] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10846,7 +10930,7 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) ProtoRe // Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 84} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 85} } func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) GetEpoch() *EpochV2 { @@ -10924,7 +11008,7 @@ type ClientMeta_AdditionalEthV1ValidatorsData struct { func (x *ClientMeta_AdditionalEthV1ValidatorsData) Reset() { *x = ClientMeta_AdditionalEthV1ValidatorsData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[113] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10937,7 +11021,7 @@ func (x *ClientMeta_AdditionalEthV1ValidatorsData) String() string { func (*ClientMeta_AdditionalEthV1ValidatorsData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV1ValidatorsData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[113] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10950,7 +11034,7 @@ func (x *ClientMeta_AdditionalEthV1ValidatorsData) ProtoReflect() protoreflect.M // Deprecated: Use ClientMeta_AdditionalEthV1ValidatorsData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV1ValidatorsData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 85} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 86} } func (x *ClientMeta_AdditionalEthV1ValidatorsData) GetEpoch() *EpochV2 { @@ -10985,7 +11069,7 @@ type ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData struct { func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) Reset() { *x = ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[114] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10998,7 +11082,7 @@ func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) String func (*ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) ProtoMessage() {} func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[114] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11011,7 +11095,7 @@ func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) ProtoR // Deprecated: Use ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 86} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 87} } func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) GetRelay() *mevrelay.Relay { @@ -11088,7 +11172,7 @@ type ClientMeta_AdditionalMevRelayPayloadDeliveredData struct { func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) Reset() { *x = ClientMeta_AdditionalMevRelayPayloadDeliveredData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[115] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11101,7 +11185,7 @@ func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) String() string { func (*ClientMeta_AdditionalMevRelayPayloadDeliveredData) ProtoMessage() {} func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[115] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11114,7 +11198,7 @@ func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) ProtoReflect() proto // Deprecated: Use ClientMeta_AdditionalMevRelayPayloadDeliveredData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalMevRelayPayloadDeliveredData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 87} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 88} } func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) GetRelay() *mevrelay.Relay { @@ -11203,7 +11287,7 @@ type ClientMeta_AdditionalEthV3ValidatorBlockData struct { func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) Reset() { *x = ClientMeta_AdditionalEthV3ValidatorBlockData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[116] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11216,7 +11300,7 @@ func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) String() string { func (*ClientMeta_AdditionalEthV3ValidatorBlockData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[116] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11229,7 +11313,7 @@ func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) ProtoReflect() protorefle // Deprecated: Use ClientMeta_AdditionalEthV3ValidatorBlockData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV3ValidatorBlockData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 88} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 89} } func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetEpoch() *EpochV2 { @@ -11339,7 +11423,7 @@ type ClientMeta_AdditionalMevRelayValidatorRegistrationData struct { func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) Reset() { *x = ClientMeta_AdditionalMevRelayValidatorRegistrationData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[117] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11352,7 +11436,7 @@ func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) String() string func (*ClientMeta_AdditionalMevRelayValidatorRegistrationData) ProtoMessage() {} func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[117] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11365,7 +11449,7 @@ func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) ProtoReflect() // Deprecated: Use ClientMeta_AdditionalMevRelayValidatorRegistrationData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalMevRelayValidatorRegistrationData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 89} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 90} } func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) GetRelay() *mevrelay.Relay { @@ -11427,7 +11511,7 @@ type ClientMeta_AdditionalNodeRecordConsensusData struct { func (x *ClientMeta_AdditionalNodeRecordConsensusData) Reset() { *x = ClientMeta_AdditionalNodeRecordConsensusData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[118] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11440,7 +11524,7 @@ func (x *ClientMeta_AdditionalNodeRecordConsensusData) String() string { func (*ClientMeta_AdditionalNodeRecordConsensusData) ProtoMessage() {} func (x *ClientMeta_AdditionalNodeRecordConsensusData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[118] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11453,7 +11537,7 @@ func (x *ClientMeta_AdditionalNodeRecordConsensusData) ProtoReflect() protorefle // Deprecated: Use ClientMeta_AdditionalNodeRecordConsensusData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalNodeRecordConsensusData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 90} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 91} } func (x *ClientMeta_AdditionalNodeRecordConsensusData) GetFinalizedEpoch() *EpochV2 { @@ -11493,7 +11577,7 @@ type ClientMeta_AdditionalConsensusEngineAPINewPayloadData struct { func (x *ClientMeta_AdditionalConsensusEngineAPINewPayloadData) Reset() { *x = ClientMeta_AdditionalConsensusEngineAPINewPayloadData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[119] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11506,7 +11590,7 @@ func (x *ClientMeta_AdditionalConsensusEngineAPINewPayloadData) String() string func (*ClientMeta_AdditionalConsensusEngineAPINewPayloadData) ProtoMessage() {} func (x *ClientMeta_AdditionalConsensusEngineAPINewPayloadData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[119] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11519,7 +11603,7 @@ func (x *ClientMeta_AdditionalConsensusEngineAPINewPayloadData) ProtoReflect() p // Deprecated: Use ClientMeta_AdditionalConsensusEngineAPINewPayloadData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalConsensusEngineAPINewPayloadData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 91} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 92} } func (x *ClientMeta_AdditionalConsensusEngineAPINewPayloadData) GetEpoch() *EpochV2 { @@ -11552,7 +11636,7 @@ type ClientMeta_AdditionalConsensusEngineAPIGetBlobsData struct { func (x *ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) Reset() { *x = ClientMeta_AdditionalConsensusEngineAPIGetBlobsData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[120] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11565,7 +11649,7 @@ func (x *ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) String() string { func (*ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) ProtoMessage() {} func (x *ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[120] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11578,7 +11662,7 @@ func (x *ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) ProtoReflect() pro // Deprecated: Use ClientMeta_AdditionalConsensusEngineAPIGetBlobsData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 92} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 93} } func (x *ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) GetEpoch() *EpochV2 { @@ -11611,7 +11695,7 @@ type ClientMeta_AdditionalEthV1BeaconBlobData struct { func (x *ClientMeta_AdditionalEthV1BeaconBlobData) Reset() { *x = ClientMeta_AdditionalEthV1BeaconBlobData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[121] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11624,7 +11708,7 @@ func (x *ClientMeta_AdditionalEthV1BeaconBlobData) String() string { func (*ClientMeta_AdditionalEthV1BeaconBlobData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV1BeaconBlobData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[121] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11637,7 +11721,7 @@ func (x *ClientMeta_AdditionalEthV1BeaconBlobData) ProtoReflect() protoreflect.M // Deprecated: Use ClientMeta_AdditionalEthV1BeaconBlobData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV1BeaconBlobData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 93} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 94} } func (x *ClientMeta_AdditionalEthV1BeaconBlobData) GetEpoch() *EpochV2 { @@ -11668,7 +11752,7 @@ type ClientMeta_Ethereum_Network struct { func (x *ClientMeta_Ethereum_Network) Reset() { *x = ClientMeta_Ethereum_Network{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[122] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11681,7 +11765,7 @@ func (x *ClientMeta_Ethereum_Network) String() string { func (*ClientMeta_Ethereum_Network) ProtoMessage() {} func (x *ClientMeta_Ethereum_Network) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[122] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11733,7 +11817,7 @@ type ClientMeta_Ethereum_Execution struct { func (x *ClientMeta_Ethereum_Execution) Reset() { *x = ClientMeta_Ethereum_Execution{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[123] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11746,7 +11830,7 @@ func (x *ClientMeta_Ethereum_Execution) String() string { func (*ClientMeta_Ethereum_Execution) ProtoMessage() {} func (x *ClientMeta_Ethereum_Execution) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[123] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11818,7 +11902,7 @@ type ClientMeta_Ethereum_Consensus struct { func (x *ClientMeta_Ethereum_Consensus) Reset() { *x = ClientMeta_Ethereum_Consensus{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[124] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11831,7 +11915,7 @@ func (x *ClientMeta_Ethereum_Consensus) String() string { func (*ClientMeta_Ethereum_Consensus) ProtoMessage() {} func (x *ClientMeta_Ethereum_Consensus) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[124] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11873,7 +11957,7 @@ type ServerMeta_Event struct { func (x *ServerMeta_Event) Reset() { *x = ServerMeta_Event{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[125] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11886,7 +11970,7 @@ func (x *ServerMeta_Event) String() string { func (*ServerMeta_Event) ProtoMessage() {} func (x *ServerMeta_Event) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[125] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11941,7 +12025,7 @@ type ServerMeta_Geo struct { func (x *ServerMeta_Geo) Reset() { *x = ServerMeta_Geo{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[126] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11954,7 +12038,7 @@ func (x *ServerMeta_Geo) String() string { func (*ServerMeta_Geo) ProtoMessage() {} func (x *ServerMeta_Geo) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[126] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12047,7 +12131,7 @@ type ServerMeta_Client struct { func (x *ServerMeta_Client) Reset() { *x = ServerMeta_Client{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[127] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12060,7 +12144,7 @@ func (x *ServerMeta_Client) String() string { func (*ServerMeta_Client) ProtoMessage() {} func (x *ServerMeta_Client) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[127] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12116,7 +12200,7 @@ type ServerMeta_Peer struct { func (x *ServerMeta_Peer) Reset() { *x = ServerMeta_Peer{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[128] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12129,7 +12213,7 @@ func (x *ServerMeta_Peer) String() string { func (*ServerMeta_Peer) ProtoMessage() {} func (x *ServerMeta_Peer) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[128] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12163,7 +12247,7 @@ type ServerMeta_AdditionalBeaconP2PAttestationData struct { func (x *ServerMeta_AdditionalBeaconP2PAttestationData) Reset() { *x = ServerMeta_AdditionalBeaconP2PAttestationData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[129] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12176,7 +12260,7 @@ func (x *ServerMeta_AdditionalBeaconP2PAttestationData) String() string { func (*ServerMeta_AdditionalBeaconP2PAttestationData) ProtoMessage() {} func (x *ServerMeta_AdditionalBeaconP2PAttestationData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[129] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12210,7 +12294,7 @@ type ServerMeta_AdditionalLibp2PTraceConnectedData struct { func (x *ServerMeta_AdditionalLibp2PTraceConnectedData) Reset() { *x = ServerMeta_AdditionalLibp2PTraceConnectedData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[130] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12223,7 +12307,7 @@ func (x *ServerMeta_AdditionalLibp2PTraceConnectedData) String() string { func (*ServerMeta_AdditionalLibp2PTraceConnectedData) ProtoMessage() {} func (x *ServerMeta_AdditionalLibp2PTraceConnectedData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[130] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12257,7 +12341,7 @@ type ServerMeta_AdditionalLibp2PTraceDisconnectedData struct { func (x *ServerMeta_AdditionalLibp2PTraceDisconnectedData) Reset() { *x = ServerMeta_AdditionalLibp2PTraceDisconnectedData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[131] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12270,7 +12354,7 @@ func (x *ServerMeta_AdditionalLibp2PTraceDisconnectedData) String() string { func (*ServerMeta_AdditionalLibp2PTraceDisconnectedData) ProtoMessage() {} func (x *ServerMeta_AdditionalLibp2PTraceDisconnectedData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[131] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12304,7 +12388,7 @@ type ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData struct { func (x *ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) Reset() { *x = ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[132] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12317,7 +12401,7 @@ func (x *ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) String() string func (*ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) ProtoMessage() {} func (x *ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[132] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12351,7 +12435,7 @@ type ServerMeta_AdditionalLibp2PTraceIdentifyData struct { func (x *ServerMeta_AdditionalLibp2PTraceIdentifyData) Reset() { *x = ServerMeta_AdditionalLibp2PTraceIdentifyData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[133] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12364,7 +12448,7 @@ func (x *ServerMeta_AdditionalLibp2PTraceIdentifyData) String() string { func (*ServerMeta_AdditionalLibp2PTraceIdentifyData) ProtoMessage() {} func (x *ServerMeta_AdditionalLibp2PTraceIdentifyData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[133] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12398,7 +12482,7 @@ type ServerMeta_AdditionalNodeRecordConsensusData struct { func (x *ServerMeta_AdditionalNodeRecordConsensusData) Reset() { *x = ServerMeta_AdditionalNodeRecordConsensusData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[134] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12411,7 +12495,7 @@ func (x *ServerMeta_AdditionalNodeRecordConsensusData) String() string { func (*ServerMeta_AdditionalNodeRecordConsensusData) ProtoMessage() {} func (x *ServerMeta_AdditionalNodeRecordConsensusData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[134] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12445,7 +12529,7 @@ type ServerMeta_AdditionalNodeRecordExecutionData struct { func (x *ServerMeta_AdditionalNodeRecordExecutionData) Reset() { *x = ServerMeta_AdditionalNodeRecordExecutionData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[135] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12458,7 +12542,7 @@ func (x *ServerMeta_AdditionalNodeRecordExecutionData) String() string { func (*ServerMeta_AdditionalNodeRecordExecutionData) ProtoMessage() {} func (x *ServerMeta_AdditionalNodeRecordExecutionData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[135] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12500,7 +12584,7 @@ type ExecutionBlockMetrics_StateReads struct { func (x *ExecutionBlockMetrics_StateReads) Reset() { *x = ExecutionBlockMetrics_StateReads{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[136] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12513,7 +12597,7 @@ func (x *ExecutionBlockMetrics_StateReads) String() string { func (*ExecutionBlockMetrics_StateReads) ProtoMessage() {} func (x *ExecutionBlockMetrics_StateReads) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[136] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12580,7 +12664,7 @@ type ExecutionBlockMetrics_StateWrites struct { func (x *ExecutionBlockMetrics_StateWrites) Reset() { *x = ExecutionBlockMetrics_StateWrites{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[137] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12593,7 +12677,7 @@ func (x *ExecutionBlockMetrics_StateWrites) String() string { func (*ExecutionBlockMetrics_StateWrites) ProtoMessage() {} func (x *ExecutionBlockMetrics_StateWrites) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[137] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12668,7 +12752,7 @@ type ExecutionBlockMetrics_CacheEntry struct { func (x *ExecutionBlockMetrics_CacheEntry) Reset() { *x = ExecutionBlockMetrics_CacheEntry{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[138] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12681,7 +12765,7 @@ func (x *ExecutionBlockMetrics_CacheEntry) String() string { func (*ExecutionBlockMetrics_CacheEntry) ProtoMessage() {} func (x *ExecutionBlockMetrics_CacheEntry) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[138] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12739,7 +12823,7 @@ type ExecutionBlockMetrics_CodeCacheEntry struct { func (x *ExecutionBlockMetrics_CodeCacheEntry) Reset() { *x = ExecutionBlockMetrics_CodeCacheEntry{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[139] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12752,7 +12836,7 @@ func (x *ExecutionBlockMetrics_CodeCacheEntry) String() string { func (*ExecutionBlockMetrics_CodeCacheEntry) ProtoMessage() {} func (x *ExecutionBlockMetrics_CodeCacheEntry) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[139] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12838,1199 +12922,1191 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x74, 0x65, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x70, 0x6b, 0x67, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2f, - 0x62, 0x69, 0x64, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x70, 0x6b, 0x67, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2f, 0x72, - 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x70, 0x6b, 0x67, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2f, 0x70, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x70, - 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x6d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x70, 0x6b, 0x67, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2f, 0x70, 0x65, 0x65, - 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2f, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, + 0x69, 0x74, 0x74, 0x65, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x70, 0x6b, 0x67, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2f, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2f, 0x62, 0x69, 0x64, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2f, 0x70, 0x65, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x1c, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x2f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x24, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6c, 0x69, 0x62, 0x70, 0x32, + 0x70, 0x2f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2f, 0x65, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2f, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, - 0x62, 0x2f, 0x65, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x70, 0x6b, 0x67, + 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x73, + 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x24, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6e, 0x6f, 0x64, - 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x43, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, - 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x5e, 0x0a, 0x14, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x69, - 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x22, 0x65, 0x0a, 0x05, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, - 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x07, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x12, - 0x34, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6e, + 0x64, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x43, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x5e, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, + 0x0a, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x69, 0x6e, + 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x22, 0x65, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, + 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x85, 0x01, + 0x0a, 0x07, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x12, 0x34, 0x0a, 0x06, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x44, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x64, 0x0a, 0x04, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x64, 0x0a, 0x04, 0x53, - 0x6c, 0x6f, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x84, 0x01, 0x0a, 0x06, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x12, 0x34, 0x0a, 0x06, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x06, + 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x12, 0x34, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x22, 0x30, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x65, 0x78, 0x74, 0x22, 0x37, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, 0x6c, + 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x22, 0x57, 0x0a, + 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x12, 0x46, + 0x0a, 0x0f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, + 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x22, 0x54, 0x0a, 0x12, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x0f, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x92, 0x01, 0x0a, + 0x14, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x56, 0x32, 0x12, 0x46, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, + 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x32, 0x0a, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x30, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6b, - 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x22, 0x37, 0x0a, 0x0b, 0x50, 0x72, - 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6c, 0x6f, - 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, - 0x69, 0x66, 0x66, 0x22, 0x57, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x56, 0x32, 0x12, 0x46, 0x0a, 0x0f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x73, 0x6c, 0x6f, - 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x22, 0x54, 0x0a, 0x12, - 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x63, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x22, 0x92, 0x01, 0x0a, 0x14, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x12, 0x46, 0x0a, 0x0f, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x32, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xaa, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x62, 0x75, - 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, - 0x12, 0x2f, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, - 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, - 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, - 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x12, 0x32, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x52, 0x05, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x22, 0xb2, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, - 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x12, - 0x31, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, - 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, 0x32, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, - 0x72, 0x65, 0x12, 0x2f, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, 0x32, 0x52, 0x05, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, - 0x56, 0x32, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x44, 0x0a, 0x0a, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x22, - 0x57, 0x0a, 0x11, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x22, 0xf5, 0x02, 0x0a, 0x11, 0x53, 0x79, 0x6e, - 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x30, - 0x0a, 0x13, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, - 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x62, 0x69, 0x74, 0x73, - 0x12, 0x3a, 0x0a, 0x18, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x18, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x56, 0x0a, 0x17, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x17, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x74, 0x65, 0x64, 0x12, 0x4a, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x73, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, - 0x12, 0x4e, 0x0a, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x86, 0x01, 0x0a, 0x0f, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, - 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x22, 0x82, 0x04, 0x0a, 0x12, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x22, 0xaa, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x12, 0x2f, 0x0a, 0x06, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x05, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, + 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xb2, + 0x01, 0x0a, 0x16, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x12, 0x31, 0x0a, 0x06, 0x62, 0x65, 0x66, + 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x56, 0x32, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x2f, 0x0a, 0x05, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x56, 0x32, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x12, 0x34, 0x0a, + 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x52, 0x05, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x22, 0x44, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x57, 0x0a, 0x11, 0x53, 0x79, 0x6e, + 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x42, + 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, + 0x65, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, + 0x65, 0x65, 0x22, 0xf5, 0x02, 0x0a, 0x11, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x18, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x56, 0x0a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x64, 0x12, 0x4a, + 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x6d, 0x69, 0x73, + 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x12, 0x4e, 0x0a, 0x13, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x0f, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x23, + 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, + 0x6f, 0x6f, 0x74, 0x22, 0x82, 0x04, 0x0a, 0x12, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x12, 0x36, 0x0a, 0x16, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x69, 0x65, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x16, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x69, + 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x63, 0x6f, + 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2c, - 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, - 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x13, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x26, - 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, - 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, - 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x11, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, 0x64, - 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x22, 0xf0, - 0x06, 0x0a, 0x1c, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, - 0x6e, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, - 0x3e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x12, - 0x3e, 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, - 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, - 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, - 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x0a, 0x11, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, + 0x64, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x22, 0xf0, 0x06, 0x0a, 0x1c, 0x43, 0x6f, 0x6e, + 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x4e, + 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x40, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, - 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, - 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x38, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, - 0x62, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x62, 0x6c, 0x6f, - 0x62, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x2c, 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x2a, 0x0a, - 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0xbc, 0x04, 0x0a, 0x1a, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, - 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, - 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x40, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, - 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, - 0x6f, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x12, 0x46, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, - 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x10, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x22, 0xd3, 0x05, 0x0a, 0x19, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, - 0x67, 0x69, 0x6e, 0x65, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2a, - 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, + 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, + 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x78, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6c, 0x61, 0x74, + 0x65, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x2a, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xbc, 0x04, 0x0a, 0x1a, + 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, + 0x50, 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x40, 0x0a, 0x0c, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x20, 0x0a, 0x0b, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x38, - 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, - 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, - 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x12, 0x2a, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x26, - 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x04, 0x0a, 0x17, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, - 0x62, 0x73, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3e, - 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x12, 0x3e, - 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x2c, 0x0a, 0x11, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x46, 0x0a, 0x0f, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x46, - 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x10, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x44, + 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xd3, 0x05, 0x0a, 0x19, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4e, 0x65, + 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x40, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, + 0x75, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, - 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x52, - 0x0a, 0x15, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, + 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x38, + 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, + 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x62, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x62, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, + 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, + 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x2a, 0x0a, 0x10, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x22, 0xb9, 0x04, 0x0a, 0x17, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x12, 0x2a, 0x0a, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x65, 0x73, 0x22, 0xb7, 0xf1, 0x01, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x64, 0x72, 0x69, 0x66, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x72, 0x69, 0x66, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x74, - 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, - 0x6d, 0x12, 0x34, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x19, 0x65, 0x74, 0x68, 0x5f, - 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, - 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6b, 0x0a, 0x12, 0x65, 0x74, - 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x65, - 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x12, 0x6e, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, - 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x88, 0x01, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, - 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, - 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x46, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x2a, 0x0a, 0x10, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0e, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x15, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, + 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22, 0xa3, 0xf3, 0x01, + 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6d, + 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x72, 0x69, 0x66, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, + 0x72, 0x69, 0x66, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, + 0x6d, 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x12, 0x34, 0x0a, 0x06, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x12, 0x80, 0x01, 0x0a, 0x19, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x24, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, + 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6b, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, + 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x48, 0x00, 0x52, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, + 0x44, 0x12, 0x6e, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, - 0x78, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, - 0x49, 0x54, 0x12, 0x9a, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, - 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, - 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x12, - 0x7f, 0x0a, 0x19, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, - 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, - 0x65, 0x6f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x48, + 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, + 0x4b, 0x12, 0x88, 0x01, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, + 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, + 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x12, 0x9a, 0x01, 0x0a, + 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, + 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, - 0x12, 0x9f, 0x01, 0x0a, 0x24, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, - 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x2f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, - 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, - 0x4f, 0x46, 0x12, 0x65, 0x0a, 0x13, 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x70, - 0x6f, 0x6f, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x13, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, - 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6e, 0x0a, 0x13, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x7c, 0x0a, 0x18, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x31, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, - 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, - 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x12, 0x8d, 0x01, 0x0a, 0x1e, 0x65, 0x74, 0x68, 0x5f, - 0x76, 0x31, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, + 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x12, 0x7f, 0x0a, 0x19, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x44, 0x61, + 0x74, 0x61, 0x48, 0x00, 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, + 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x12, 0x9f, 0x01, 0x0a, 0x24, 0x65, + 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, + 0x6f, 0x6f, 0x66, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, + 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x12, 0x65, 0x0a, 0x13, + 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x13, + 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x12, 0x6e, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x52, 0x65, 0x4f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, + 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x12, 0x7c, 0x0a, 0x18, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x64, 0x65, + 0x62, 0x75, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, - 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x12, 0x7a, 0x0a, 0x17, 0x65, 0x74, 0x68, 0x5f, 0x76, - 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x22, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, - 0x54, 0x45, 0x45, 0x12, 0x97, 0x01, 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, - 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, - 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x12, 0x88, 0x01, - 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, - 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x32, 0x18, 0x18, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x12, 0x73, 0x0a, 0x15, 0x65, 0x74, 0x68, 0x5f, - 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x76, - 0x32, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x45, 0x12, 0x8d, 0x01, 0x0a, 0x1e, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x64, 0x65, 0x62, + 0x75, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, + 0x65, 0x6f, 0x72, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, + 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x4f, 0x72, 0x67, + 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, + 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, + 0x47, 0x12, 0x7a, 0x0a, 0x17, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x22, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, 0x97, 0x01, + 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x56, 0x41, 0x4c, + 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x12, 0x88, 0x01, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, + 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x32, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x56, 0x32, 0x12, 0x73, 0x0a, 0x15, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x76, 0x32, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x65, 0x61, 0x64, 0x56, 0x32, 0x44, + 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, + 0x48, 0x45, 0x41, 0x44, 0x5f, 0x56, 0x32, 0x12, 0x76, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, + 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, + 0x32, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x48, - 0x65, 0x61, 0x64, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x20, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x56, 0x32, 0x12, 0x76, 0x0a, - 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x32, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x12, 0x90, 0x01, 0x0a, 0x1f, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, - 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, - 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x76, 0x32, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x39, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, - 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, - 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, + 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, - 0x5f, 0x45, 0x58, 0x49, 0x54, 0x5f, 0x56, 0x32, 0x12, 0xa2, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, - 0x76, 0x32, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, - 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x56, 0x32, 0x12, 0x87, 0x01, - 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x5f, 0x76, 0x32, 0x18, 0x1d, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x27, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, - 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x12, 0xa7, 0x01, 0x0a, 0x27, 0x65, 0x74, 0x68, 0x5f, - 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, - 0x5f, 0x76, 0x32, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x12, + 0x90, 0x01, 0x0a, 0x1f, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, + 0x5f, 0x76, 0x32, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, - 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x32, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x5f, 0x56, - 0x32, 0x12, 0x6d, 0x0a, 0x16, 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x32, 0x18, 0x1f, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, - 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, - 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, - 0x12, 0x76, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x32, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x12, 0x84, 0x01, 0x0a, 0x1b, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x31, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x76, 0x32, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, + 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, + 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, + 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x5f, + 0x56, 0x32, 0x12, 0xa2, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x32, 0x18, 0x1c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x32, 0x44, + 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, + 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, + 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x56, 0x32, 0x12, 0x87, 0x01, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, + 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, + 0x72, 0x65, 0x6f, 0x72, 0x67, 0x5f, 0x76, 0x32, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, - 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, - 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, - 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x56, 0x32, 0x12, - 0x95, 0x01, 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, - 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6f, - 0x72, 0x67, 0x5f, 0x76, 0x32, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x78, 0x61, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, + 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, + 0x32, 0x12, 0xa7, 0x01, 0x0a, 0x27, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x76, 0x32, 0x18, 0x1e, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, + 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, + 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x5f, 0x56, 0x32, 0x12, 0x6d, 0x0a, 0x16, 0x6d, + 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x76, 0x32, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, - 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x4f, 0x72, - 0x67, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, - 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, - 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x12, 0xa2, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, + 0x48, 0x00, 0x52, 0x16, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, + 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x12, 0x76, 0x0a, 0x16, 0x65, 0x74, + 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x76, 0x32, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, + 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, + 0x56, 0x32, 0x12, 0x84, 0x01, 0x0a, 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x64, 0x65, + 0x62, 0x75, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, + 0x76, 0x32, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, + 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, + 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, + 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x56, 0x32, 0x12, 0x95, 0x01, 0x0a, 0x21, 0x65, 0x74, + 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x5f, 0x76, 0x32, 0x18, + 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x4f, 0x72, 0x67, 0x56, 0x32, 0x44, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, + 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, + 0x32, 0x12, 0xa2, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x23, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x61, + 0x74, 0x61, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, + 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, + 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0xa2, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, + 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, + 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, + 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, + 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0x99, 0x01, 0x0a, 0x22, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, + 0x69, 0x74, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, + 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, + 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x12, 0x85, 0x01, 0x0a, 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, - 0x67, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, - 0x68, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, - 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0xa2, 0x01, 0x0a, - 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, - 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, - 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x12, + 0xb2, 0x01, 0x0a, 0x2b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, + 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x36, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, + 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, + 0x41, 0x4e, 0x47, 0x45, 0x12, 0xae, 0x01, 0x0a, 0x29, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, + 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, + 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, - 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, - 0x47, 0x12, 0x99, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, - 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, + 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x8e, 0x01, 0x0a, 0x1e, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, + 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x77, 0x69, + 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, - 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6e, - 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2d, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, - 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x12, 0x85, 0x01, - 0x0a, 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x26, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x26, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, - 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, - 0x50, 0x4f, 0x53, 0x49, 0x54, 0x12, 0xb2, 0x01, 0x0a, 0x2b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, - 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x6c, - 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x78, 0x61, + 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, + 0x44, 0x52, 0x41, 0x57, 0x41, 0x4c, 0x12, 0x82, 0x01, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, + 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, + 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x12, 0xae, 0x01, 0x0a, 0x29, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, - 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x8e, 0x01, 0x0a, 0x1e, - 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x18, 0x29, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, + 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x82, 0x01, 0x0a, 0x1a, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, + 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, + 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, + 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, + 0x12, 0x6d, 0x0a, 0x16, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x61, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, + 0x71, 0x0a, 0x14, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x65, 0x72, 0x5f, 0x64, 0x75, 0x74, 0x79, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x50, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x44, 0x61, 0x74, 0x61, 0x48, + 0x00, 0x52, 0x1f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, + 0x54, 0x59, 0x12, 0xb1, 0x01, 0x0a, 0x2a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6c, 0x61, 0x62, 0x6f, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, + 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, + 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, + 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x69, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, + 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x41, 0x64, 0x64, + 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, + 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, + 0x52, 0x12, 0x72, 0x0a, 0x18, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, + 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x31, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x18, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, + 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, 0x69, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x76, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x32, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, - 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, 0x4c, 0x12, 0x82, 0x01, 0x0a, - 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, - 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x2a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, - 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, - 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, - 0x52, 0x12, 0x82, 0x01, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, - 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, - 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x6d, 0x0a, 0x16, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, + 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x76, + 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, 0x52, 0x50, 0x43, + 0x12, 0x69, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, + 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, + 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x44, 0x61, + 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x5e, 0x0a, 0x11, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, + 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x71, 0x0a, 0x14, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x75, 0x74, 0x79, 0x18, 0x2e, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x45, 0x74, 0x68, 0x56, 0x31, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, - 0x79, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, - 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x12, 0xb1, 0x01, 0x0a, 0x2a, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x65, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, - 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x69, 0x0a, 0x15, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, - 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4a, 0x6f, + 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x11, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x12, 0x6d, 0x0a, 0x16, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x41, - 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, 0x72, 0x0a, 0x18, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x70, - 0x65, 0x65, 0x72, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x48, 0x00, 0x52, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x77, 0x0a, 0x19, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, + 0x54, 0x45, 0x44, 0x12, 0x7e, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, - 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x18, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, - 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, 0x69, 0x0a, 0x15, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x76, - 0x5f, 0x72, 0x70, 0x63, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x52, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, - 0x43, 0x56, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x69, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x72, 0x70, 0x63, 0x18, - 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, + 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44, + 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, + 0x41, 0x54, 0x41, 0x12, 0x78, 0x0a, 0x1a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, + 0x00, 0x52, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, + 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x12, 0x92, 0x01, + 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, + 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, + 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, + 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, + 0x43, 0x4b, 0x12, 0xa4, 0x01, 0x0a, 0x29, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, + 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x29, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, + 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x54, + 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x92, 0x01, 0x0a, 0x23, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, + 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, + 0x72, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, + 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, + 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, + 0x42, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x70, + 0x0a, 0x11, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, + 0x12, 0xab, 0x01, 0x0a, 0x2c, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x62, + 0x69, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x69, 0x64, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, + 0x52, 0x2c, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x49, 0x44, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x12, 0x84, + 0x01, 0x0a, 0x1b, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, 0x3e, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, + 0x24, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, + 0x53, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x45, 0x4c, 0x49, + 0x56, 0x45, 0x52, 0x45, 0x44, 0x12, 0x77, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x33, 0x5f, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x41, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x6e, - 0x64, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, - 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x50, - 0x43, 0x12, 0x5e, 0x0a, 0x11, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x11, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4a, 0x4f, 0x49, - 0x4e, 0x12, 0x6d, 0x0a, 0x16, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x35, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, - 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, - 0x12, 0x77, 0x0a, 0x19, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, - 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x36, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1a, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, - 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x7e, 0x0a, 0x1c, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x33, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x33, 0x5f, 0x56, + 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x8a, + 0x01, 0x0a, 0x20, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x20, 0x4d, 0x45, 0x56, 0x5f, 0x52, + 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x52, + 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x82, 0x01, 0x0a, 0x1a, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, + 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f, 0x73, + 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, + 0x12, 0x69, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, + 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, - 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, - 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x12, 0x78, 0x0a, 0x1a, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x12, 0x92, 0x01, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, - 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x39, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, - 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, - 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0xa4, 0x01, 0x0a, 0x29, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, - 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x29, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, - 0x92, 0x01, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, - 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, - 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, + 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x50, 0x43, 0x44, 0x61, + 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x61, 0x0a, 0x12, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x76, + 0x65, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4c, + 0x65, 0x61, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, + 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x12, 0x61, + 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, + 0x72, 0x61, 0x66, 0x74, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x47, 0x72, 0x61, 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x46, + 0x54, 0x12, 0x61, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, + 0x65, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x6c, - 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, - 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, - 0x45, 0x43, 0x41, 0x52, 0x12, 0x70, 0x0a, 0x11, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, - 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, - 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x12, 0xab, 0x01, 0x0a, 0x2c, 0x6d, 0x65, 0x76, 0x5f, 0x72, - 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x62, 0x69, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x75, 0x62, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, - 0x61, 0x79, 0x42, 0x69, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, - 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2c, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, - 0x59, 0x5f, 0x42, 0x49, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x42, 0x55, 0x49, 0x4c, - 0x44, 0x45, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x53, - 0x53, 0x49, 0x4f, 0x4e, 0x12, 0x84, 0x01, 0x0a, 0x1b, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, - 0x61, 0x79, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, - 0x65, 0x72, 0x65, 0x64, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x24, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, - 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, - 0x44, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x12, 0x77, 0x0a, 0x16, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x33, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x33, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x33, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x8a, 0x01, 0x0a, 0x20, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, - 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, - 0x65, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x20, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, - 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x12, 0x82, 0x01, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, - 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, - 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x12, 0x69, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x70, 0x63, 0x18, - 0x44, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x72, 0x6f, - 0x70, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, - 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, - 0x43, 0x12, 0x61, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, + 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, + 0x52, 0x55, 0x4e, 0x45, 0x12, 0x84, 0x01, 0x0a, 0x1e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4c, - 0x45, 0x41, 0x56, 0x45, 0x12, 0x61, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, - 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1e, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, + 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x7e, 0x0a, 0x1c, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x69, + 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x49, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1c, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x49, + 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x7e, 0x0a, 0x1c, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x4a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1c, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, + 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x7b, 0x0a, 0x1b, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6a, 0x65, + 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, - 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x72, 0x61, 0x66, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x12, 0x61, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, 0x47, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, 0x72, 0x75, 0x6e, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x12, 0x84, 0x01, 0x0a, 0x1e, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x75, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x48, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x1e, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, - 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, - 0x45, 0x12, 0x7e, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, - 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, - 0x45, 0x12, 0x7e, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, - 0x45, 0x12, 0x7b, 0x0a, 0x1b, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1b, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x91, 0x01, 0x0a, 0x23, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x68, 0x61, 0x76, 0x65, + 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, - 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x1b, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, - 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x91, - 0x01, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x5f, 0x69, 0x68, 0x61, 0x76, 0x65, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, + 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x48, 0x61, 0x76, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, + 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x48, 0x41, 0x56, 0x45, 0x12, 0x91, 0x01, 0x0a, + 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, + 0x77, 0x61, 0x6e, 0x74, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x49, 0x57, 0x61, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, + 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x57, 0x41, 0x4e, 0x54, + 0x12, 0x9d, 0x01, 0x0a, 0x27, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x6f, 0x6e, 0x74, 0x77, 0x61, 0x6e, 0x74, 0x18, 0x4e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, + 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x44, 0x6f, 0x6e, 0x74, 0x57, 0x61, 0x6e, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x27, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, + 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x44, 0x4f, 0x4e, 0x54, 0x57, 0x41, 0x4e, 0x54, + 0x12, 0x91, 0x01, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x5f, 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, + 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61, 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, + 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, + 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x47, + 0x52, 0x41, 0x46, 0x54, 0x12, 0x91, 0x01, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, 0x50, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, + 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, + 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x12, 0x8f, 0x01, 0x0a, 0x22, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x51, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, + 0x4d, 0x65, 0x74, 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x22, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x53, 0x55, + 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x80, 0x01, 0x0a, 0x1d, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x52, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, + 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1d, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, + 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x6a, 0x0a, + 0x15, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6e, + 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x18, 0x53, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x49, 0x48, 0x61, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, - 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x48, 0x41, - 0x56, 0x45, 0x12, 0x91, 0x01, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, - 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x77, 0x61, 0x6e, 0x74, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, + 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, + 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x12, 0xa6, 0x01, 0x0a, 0x2a, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, + 0x70, 0x73, 0x75, 0x62, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x61, + 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x54, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, + 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x41, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, + 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x41, + 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, + 0x4f, 0x46, 0x12, 0x96, 0x01, 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x55, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2c, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, + 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0xa6, 0x01, 0x0a, 0x2a, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, + 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x56, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x44, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, - 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x57, 0x61, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, - 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, - 0x5f, 0x49, 0x57, 0x41, 0x4e, 0x54, 0x12, 0x9d, 0x01, 0x0a, 0x27, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x6f, 0x6e, 0x74, 0x77, 0x61, - 0x6e, 0x74, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x44, - 0x6f, 0x6e, 0x74, 0x57, 0x61, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x27, 0x4c, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, + 0x62, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, + 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, + 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, + 0x45, 0x43, 0x41, 0x52, 0x12, 0x8a, 0x01, 0x0a, 0x20, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x5f, + 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x57, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, + 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, + 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, + 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, + 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, + 0x54, 0x12, 0xa5, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, + 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, + 0x18, 0x58, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x70, + 0x63, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x64, 0x79, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, - 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x44, 0x4f, - 0x4e, 0x54, 0x57, 0x41, 0x4e, 0x54, 0x12, 0x91, 0x01, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x4f, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, - 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61, 0x66, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, - 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x12, 0x91, 0x01, 0x0a, 0x23, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, - 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x72, 0x75, - 0x6e, 0x65, 0x18, 0x50, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, - 0x75, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, - 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, - 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x12, 0x8f, - 0x01, 0x0a, 0x22, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x51, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x22, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, - 0x45, 0x54, 0x41, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, - 0x12, 0x80, 0x01, 0x0a, 0x1d, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x1d, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x4d, 0x45, 0x53, 0x53, - 0x41, 0x47, 0x45, 0x12, 0x6a, 0x0a, 0x15, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x18, 0x53, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, - 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, - 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, - 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x12, - 0xa6, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, - 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x54, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, - 0x69, 0x70, 0x53, 0x75, 0x62, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x6e, - 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, - 0x50, 0x53, 0x55, 0x42, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x41, - 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x12, 0x96, 0x01, 0x0a, 0x21, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x55, + 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, + 0x4f, 0x44, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x12, 0x89, 0x01, 0x0a, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x59, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x44, 0x61, 0x74, 0x61, - 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x44, 0x41, - 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, - 0x52, 0x12, 0xa6, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, - 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, - 0x18, 0x56, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, - 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2a, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, - 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, - 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x8a, 0x01, 0x0a, 0x20, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x79, 0x6e, 0x74, - 0x68, 0x65, 0x74, 0x69, 0x63, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, - 0x57, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, - 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, - 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x12, 0xa5, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, - 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x18, 0x58, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x52, 0x70, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, - 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x44, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x12, - 0x89, 0x01, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x65, 0x6e, - 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x59, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, - 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x45, - 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x83, 0x01, 0x0a, 0x1e, - 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x18, 0x5a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, - 0x41, 0x50, 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x1e, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, - 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, - 0x53, 0x12, 0x6b, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x12, 0x88, - 0x01, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, - 0x5c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, + 0x41, 0x50, 0x49, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, + 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, + 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x83, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, + 0x73, 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x67, + 0x65, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x73, 0x65, + 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x47, 0x65, 0x74, + 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1e, 0x43, 0x4f, 0x4e, + 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x12, 0x6b, 0x0a, 0x12, 0x65, + 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, + 0x62, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x62, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x12, 0x88, 0x01, 0x0a, 0x1c, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, + 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, + 0x54, 0x45, 0x45, 0x12, 0x99, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, + 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x79, 0x6e, + 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, + 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x12, + 0x6a, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, + 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, + 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x12, 0x90, 0x01, 0x0a, 0x1f, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x5f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x53, 0x79, 0x6e, - 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, - 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, 0x99, 0x01, 0x0a, 0x22, 0x65, 0x74, - 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x18, 0x5d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, - 0x45, 0x47, 0x41, 0x54, 0x45, 0x12, 0x6a, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x18, 0x5e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, - 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, - 0x59, 0x12, 0x32, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x4d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x40, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x73, - 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0xb5, 0x04, 0x0a, 0x08, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x65, 0x75, 0x6d, 0x12, 0x3b, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, - 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x12, 0x41, 0x0a, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, + 0x43, 0x4b, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x12, 0x32, + 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x3f, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x40, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0xb5, 0x04, 0x0a, 0x08, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, + 0x6d, 0x12, 0x3b, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x41, + 0x0a, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x41, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, - 0x75, 0x6d, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x52, 0x09, 0x63, 0x6f, - 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x1a, 0x2d, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x1a, 0xe7, 0x01, 0x0a, 0x09, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x46, 0x6f, 0x72, - 0x6b, 0x49, 0x44, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x0e, - 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, - 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, - 0x61, 0x6a, 0x6f, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x63, 0x68, - 0x1a, 0x4d, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x12, 0x26, 0x0a, - 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, - 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x49, 0x0a, 0x24, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x4d, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x49, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, - 0x4d, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x88, - 0x03, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4d, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, - 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, - 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x96, 0x03, 0x0a, 0x26, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x73, 0x65, + 0x6e, 0x73, 0x75, 0x73, 0x1a, 0x2d, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x02, 0x69, 0x64, 0x1a, 0xe7, 0x01, 0x0a, 0x09, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x26, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x49, 0x44, + 0x52, 0x07, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6d, 0x70, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x6a, 0x6f, + 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, + 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x63, 0x68, 0x1a, 0x4d, 0x0a, + 0x09, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6d, + 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x39, 0x0a, 0x0b, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x49, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x1a, 0x4d, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x1a, 0x49, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x4d, 0x0a, 0x26, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x88, 0x03, 0x0a, 0x24, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x4d, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, - 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, - 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, 0x61, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x1a, 0x97, 0x01, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x65, 0x61, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, - 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x9f, 0x01, 0x0a, - 0x1f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x65, 0x61, 0x64, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, - 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, - 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x98, - 0x01, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, + 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, + 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x13, 0x61, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x96, 0x03, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, + 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x1a, + 0x97, 0x01, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, @@ -14038,477 +14114,442 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, - 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xa0, 0x01, 0x0a, 0x20, 0x41, 0x64, + 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x9f, 0x01, 0x0a, 0x1f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, - 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, - 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xa4, 0x01, 0x0a, - 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f, 0x73, 0x73, 0x69, - 0x70, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, - 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x1a, 0x4b, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, - 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, - 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x1a, 0xbe, 0x01, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, - 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, - 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, + 0x6e, 0x74, 0x73, 0x48, 0x65, 0x61, 0x64, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, - 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, - 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, - 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, - 0x74, 0x1a, 0x51, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, + 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, + 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x98, 0x01, 0x0a, 0x1e, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, + 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, + 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xa0, 0x01, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, + 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, + 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xa4, 0x01, 0x0a, 0x24, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, + 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, + 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, + 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x1a, 0x4b, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, + 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xbe, 0x01, + 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, + 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, + 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, + 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, + 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x51, + 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, + 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, + 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x1a, 0x55, 0x0a, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x55, 0x0a, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x69, 0x6e, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x32, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, + 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x9d, 0x01, 0x0a, 0x23, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x6f, + 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xa5, 0x01, 0x0a, 0x25, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, + 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, + 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, + 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x1a, 0xb3, 0x01, 0x0a, 0x39, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, + 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, + 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xbb, 0x01, 0x0a, 0x3b, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, + 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x9d, 0x01, 0x0a, 0x23, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, - 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, - 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, - 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xa5, 0x01, 0x0a, 0x25, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, - 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, + 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, + 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x9f, 0x01, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, + 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x6e, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xa3, 0x01, 0x0a, 0x2f, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, + 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x70, 0x0a, 0x0c, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x4c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, + 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xad, 0x02, 0x0a, + 0x12, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x12, 0x31, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x2e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x48, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, + 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, + 0x12, 0x30, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0xef, 0x02, 0x0a, + 0x14, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x56, 0x32, 0x12, 0x33, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0d, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x30, 0x0a, 0x0c, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0c, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x66, 0x0a, 0x1f, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, + 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, + 0x66, 0x5f, 0x6d, 0x73, 0x12, 0x4e, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0x65, + 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, + 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x3f, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x08, 0x73, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x1a, 0x69, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, + 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, + 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x1a, 0xa1, 0x01, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x52, 0x65, 0x4f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x06, + 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, + 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x05, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x1a, 0xa7, 0x01, 0x0a, 0x29, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, + 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x4f, 0x72, 0x67, 0x56, 0x32, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x1a, 0x87, + 0x01, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, + 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, - 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x1a, 0xb3, 0x01, 0x0a, 0x39, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, - 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, - 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, - 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xbb, 0x01, 0x0a, 0x3b, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, - 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, - 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, - 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, - 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x9f, 0x01, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, - 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x6e, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x4a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, - 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xa3, 0x01, 0x0a, 0x2f, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, - 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x70, 0x0a, - 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x1a, - 0xad, 0x02, 0x0a, 0x12, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x31, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x2e, 0x0a, 0x0c, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x0c, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x48, 0x0a, 0x1f, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, - 0x5f, 0x6d, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, - 0xef, 0x02, 0x0a, 0x14, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x56, 0x32, 0x12, 0x33, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0d, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x30, 0x0a, - 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, - 0x32, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, - 0x66, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, - 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, - 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0xa1, 0x01, 0x0a, 0x26, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, + 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x52, 0x0a, 0x15, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, 0xae, 0x01, 0x0a, + 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, + 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x79, 0x6e, 0x63, 0x41, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x52, 0x0a, 0x15, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, + 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, - 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x12, 0x4e, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x1a, 0x65, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, - 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3f, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x08, - 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x1a, 0x69, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, - 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x41, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x1a, 0xa1, 0x01, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x4f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x3b, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x39, 0x0a, 0x05, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, - 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x1a, 0xa7, 0x01, 0x0a, 0x29, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, - 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x4f, 0x72, 0x67, 0x56, - 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x06, 0x62, 0x65, - 0x66, 0x6f, 0x72, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, - 0x72, 0x1a, 0x87, 0x01, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, - 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0xa1, 0x01, 0x0a, 0x26, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x52, 0x0a, 0x15, 0x73, - 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x65, - 0x72, 0x69, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, - 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, - 0xae, 0x01, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, - 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x79, - 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x52, 0x0a, 0x15, - 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, - 0x1a, 0xf2, 0x01, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, - 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, - 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, - 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x14, 0x0a, - 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, - 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x61, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, 0xf2, 0x01, + 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x70, + 0x6f, 0x6f, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, + 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x67, 0x61, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x67, 0x61, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x61, + 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x1a, 0x9a, 0x05, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, + 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, + 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, + 0x6f, 0x12, 0x32, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, + 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x03, 0x67, 0x61, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x67, 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x9a, 0x05, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, - 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, - 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x74, 0x6f, 0x12, 0x32, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, - 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x73, - 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x03, 0x67, 0x61, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x03, 0x67, 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, - 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x61, - 0x73, 0x5f, 0x74, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, - 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x12, 0x38, - 0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, - 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x6c, 0x6f, 0x62, - 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x10, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, - 0x5f, 0x63, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x62, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, - 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, - 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3a, 0x0a, 0x18, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, - 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, - 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x1a, 0x89, 0x02, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, - 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, - 0x6f, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x8d, - 0x05, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, - 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, - 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, - 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x4c, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x6e, 0x0a, 0x23, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0b, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x74, + 0x69, 0x70, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x61, + 0x73, 0x5f, 0x74, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x61, 0x73, + 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x12, 0x38, 0x0a, 0x08, 0x62, + 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x62, 0x6c, 0x6f, + 0x62, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, + 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x10, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, + 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, + 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, + 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x12, 0x3a, 0x0a, 0x18, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, + 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, + 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, + 0x89, 0x02, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, + 0x2e, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x3a, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x8d, 0x05, 0x0a, 0x20, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, + 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, + 0x74, 0x12, 0x4c, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x58, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x16, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x18, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, - 0x77, 0x68, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, - 0x77, 0x68, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x1a, 0x5d, - 0x0a, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, - 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x5d, 0x0a, - 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, - 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x5a, 0x0a, 0x2b, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, - 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x54, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x61, - 0x0a, 0x32, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, - 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x4c, 0x53, 0x54, - 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x1a, 0xd5, 0x02, 0x0a, 0x32, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, + 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x6e, 0x0a, 0x23, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x16, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, + 0x3a, 0x0a, 0x18, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x77, 0x68, 0x65, + 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x18, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x77, 0x68, 0x65, + 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x1a, 0x5d, 0x0a, 0x2e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, + 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x5d, 0x0a, 0x2e, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, + 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x5a, 0x0a, 0x2b, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, + 0x45, 0x78, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, - 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x2e, 0x0a, - 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x5f, - 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3a, 0x0a, - 0x18, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, - 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x18, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, - 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x57, 0x0a, 0x28, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, - 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x54, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, + 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x61, 0x0a, 0x32, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0xd5, + 0x02, 0x0a, 0x32, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, + 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x1a, 0x8b, 0x02, 0x0a, 0x17, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x66, - 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, - 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, - 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x12, 0x4e, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x1a, 0xdc, 0x02, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, - 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, - 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, - 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, - 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x08, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x1a, - 0xa4, 0x01, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, - 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, - 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, - 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, - 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xaa, 0x01, 0x0a, 0x2a, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, - 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, - 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x1a, 0x99, 0x02, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, - 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, - 0x6c, 0x6f, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, - 0x26, 0x0a, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x46, 0x0a, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, - 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, - 0xa9, 0x04, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, + 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x61, 0x6c, 0x6c, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x6c, + 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3a, 0x0a, 0x18, 0x62, 0x6c, + 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x62, 0x6c, + 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x57, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, + 0x57, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, + 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x8b, 0x02, 0x0a, 0x17, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x12, 0x66, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x12, 0x4e, 0x0a, 0x13, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0xdc, 0x02, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, @@ -14518,347 +14559,311 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, - 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, - 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, - 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, - 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x06, 0x73, - 0x75, 0x62, 0x6e, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, - 0x74, 0x12, 0x38, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x1a, 0x84, 0x01, 0x0a, 0x1f, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, - 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, - 0x69, 0x64, 0x1a, 0x97, 0x03, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, - 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, - 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x1a, 0x5f, 0x0a, 0x20, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x62, 0x0a, - 0x23, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, - 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, - 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x76, 0x52, 0x50, - 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x52, - 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, + 0x44, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x61, 0x74, 0x61, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x08, 0x73, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x1a, 0xa4, 0x01, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, + 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, + 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, + 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xaa, 0x01, 0x0a, + 0x2a, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, + 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, + 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x99, 0x02, 0x0a, 0x24, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, + 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, + 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x46, 0x0a, + 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0xa9, 0x04, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, + 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, + 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, + 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, + 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, + 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x04, 0x70, 0x65, + 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, + 0x72, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, + 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x1a, 0x84, 0x01, 0x0a, 0x1f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x45, 0x74, 0x68, 0x56, 0x31, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, + 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x97, 0x03, 0x0a, 0x33, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, + 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, + 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, + 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x41, 0x64, 0x64, 0x50, 0x65, + 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x72, 0x6f, 0x70, - 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x1a, 0x62, 0x0a, 0x23, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, + 0x52, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, + 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, + 0x65, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, + 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, + 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x49, 0x48, 0x61, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, + 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x57, + 0x61, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6f, 0x0a, 0x30, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, - 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x48, 0x61, 0x76, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, - 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, - 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x57, 0x61, 0x6e, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6f, - 0x0a, 0x30, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, - 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x44, 0x6f, 0x6e, 0x74, 0x57, 0x61, 0x6e, 0x74, 0x44, 0x61, + 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x44, 0x6f, 0x6e, 0x74, + 0x57, 0x61, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, + 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61, 0x66, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, + 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, - 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, - 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61, 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x5c, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, + 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, + 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, + 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5c, 0x0a, 0x1d, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x4c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, - 0x72, 0x61, 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, 0x72, - 0x75, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x72, 0x61, 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, + 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, 0x1e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, + 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x68, 0x0a, 0x29, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, + 0x61, 0x63, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x1a, 0x68, 0x0a, 0x29, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, - 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, - 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, + 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x65, 0x6c, + 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x1a, 0x65, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6a, + 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, + 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x61, 0x0a, 0x22, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x65, - 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, - 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x61, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x64, + 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, + 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6a, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, + 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x64, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, - 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6a, - 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, - 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, - 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x1a, 0x64, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, - 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x60, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, - 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xa7, 0x02, 0x0a, 0x32, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x52, 0x70, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x44, 0x61, 0x74, + 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, - 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, - 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, - 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, - 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, - 0x4d, 0x65, 0x74, 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, - 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, - 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x8d, 0x04, 0x0a, 0x2d, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, - 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, - 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, - 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, - 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, - 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, - 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x60, 0x0a, 0x39, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x60, 0x0a, 0x39, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xa9, 0x06, - 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, - 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, - 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x62, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, - 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x62, 0x0a, 0x06, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, - 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, - 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, - 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x61, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, - 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, - 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0xdd, 0x04, 0x0a, 0x33, 0x41, 0x64, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x60, + 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, + 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x1a, 0xa7, 0x02, 0x0a, 0x32, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x70, 0x63, 0x44, 0x61, 0x74, + 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x50, 0x72, + 0x6f, 0x62, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, + 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, 0x77, + 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x41, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x44, 0x61, 0x74, + 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, + 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, + 0x8d, 0x04, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, + 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, @@ -14873,63 +14878,126 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, - 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, - 0x0a, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x8d, 0x04, 0x0a, 0x2d, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x6c, 0x6f, 0x62, - 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, - 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, - 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, - 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, - 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, - 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, - 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x93, 0x04, 0x0a, 0x33, 0x41, 0x64, + 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, + 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, + 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, + 0x60, 0x0a, 0x39, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, + 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x1a, 0x60, 0x0a, 0x39, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, + 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, + 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x1a, 0xa9, 0x06, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, + 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x62, 0x0a, 0x06, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x44, 0x61, 0x74, 0x61, - 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, + 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x62, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x4a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, + 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, + 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, + 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, + 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x3b, + 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, + 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, + 0xdd, 0x04, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, + 0x75, 0x62, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x72, + 0x6f, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, + 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, + 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, + 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, + 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3b, + 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, + 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, + 0x8d, 0x04, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, + 0x75, 0x62, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, @@ -14960,1259 +15028,1303 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, - 0x44, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xc2, 0x03, 0x0a, 0x34, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x69, 0x64, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, - 0x0a, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x52, 0x65, - 0x6c, 0x61, 0x79, 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x0e, - 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, - 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, - 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, - 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, - 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x12, 0x54, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, - 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, - 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0xb4, 0x03, 0x0a, 0x26, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, - 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, - 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, - 0x79, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, - 0x6c, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, - 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x54, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, - 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, - 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x1a, 0x96, 0x06, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x45, 0x74, 0x68, 0x56, 0x33, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x93, 0x04, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, + 0x75, 0x62, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, + 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x12, 0x6e, 0x0a, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x23, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, - 0x12, 0x3e, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x12, 0x54, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, + 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, + 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, + 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x44, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xc2, 0x03, 0x0a, 0x34, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, + 0x61, 0x79, 0x42, 0x69, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, + 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, + 0x6c, 0x61, 0x79, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, + 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, + 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x54, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x15, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x1a, 0xb4, 0x03, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, + 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, + 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x05, 0x72, + 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, + 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, + 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, + 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, + 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, + 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, + 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x54, 0x0a, + 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, + 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, + 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, + 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0x96, 0x06, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x33, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, + 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, + 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4c, + 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x18, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x6e, 0x0a, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, - 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4e, 0x0a, 0x13, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, - 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x1a, 0xd7, 0x02, 0x0a, 0x2b, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, - 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x65, - 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, - 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, - 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, - 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, - 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, - 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, - 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x46, 0x0a, 0x0f, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x1a, 0xb4, 0x01, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, - 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x0f, 0x66, 0x69, - 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, + 0x73, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x4e, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, + 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x1a, 0xd7, 0x02, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, + 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, + 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x04, + 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x34, + 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, + 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x56, 0x32, 0x52, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x12, 0x29, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, - 0x74, 0x56, 0x32, 0x52, 0x08, 0x68, 0x65, 0x61, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x2c, 0x0a, - 0x0a, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, + 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, + 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x12, 0x46, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0xb4, 0x01, 0x0a, 0x21, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x36, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x29, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x64, + 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x08, 0x68, 0x65, 0x61, 0x64, 0x53, + 0x6c, 0x6f, 0x74, 0x12, 0x2c, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x09, 0x68, 0x65, 0x61, 0x64, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x1a, 0x73, 0x0a, 0x2a, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, + 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, + 0x49, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, + 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x71, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, - 0x52, 0x09, 0x68, 0x65, 0x61, 0x64, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x73, 0x0a, 0x2a, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, - 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x65, 0x77, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, - 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x1a, 0x71, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, - 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, - 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, - 0x6c, 0x6f, 0x74, 0x1a, 0x66, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, - 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0x89, 0x10, - 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x05, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x6d, 0x0a, 0x16, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, - 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, - 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6d, 0x0a, 0x16, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, - 0x43, 0x54, 0x45, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, + 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, + 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x66, 0x0a, 0x1d, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, + 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, + 0x61, 0x74, 0x61, 0x22, 0x89, 0x10, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, + 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, + 0x74, 0x61, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x12, 0x6d, 0x0a, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, + 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x12, 0x6d, 0x0a, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, + 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, + 0x76, 0x0a, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, + 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x19, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x6a, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, + 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, + 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, + 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, + 0x53, 0x55, 0x53, 0x12, 0x6a, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, + 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, + 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, + 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x12, + 0x8a, 0x01, 0x0a, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, + 0x42, 0x45, 0x41, 0x54, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, - 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x76, 0x0a, 0x19, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, - 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, - 0x44, 0x12, 0x6a, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, - 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, - 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, - 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x12, 0x6a, 0x0a, - 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, - 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, - 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x8a, 0x01, 0x0a, 0x20, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, - 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x18, 0x2a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, 0x74, - 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, - 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x12, 0x6a, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x18, - 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, - 0x46, 0x59, 0x1a, 0x53, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x12, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x12, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, - 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0xb7, 0x02, 0x0a, 0x03, 0x47, 0x65, 0x6f, 0x12, - 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, - 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x21, 0x0a, - 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, - 0x12, 0x25, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x65, - 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x61, 0x74, 0x69, 0x74, - 0x75, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, - 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, - 0x65, 0x12, 0x38, 0x0a, 0x16, 0x41, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x18, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1c, 0x41, - 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x1e, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x1a, 0x6a, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x50, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x26, 0x0a, 0x03, 0x67, - 0x65, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, + 0x62, 0x65, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x20, 0x4c, 0x49, 0x42, 0x50, + 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, + 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x12, 0x6a, 0x0a, 0x15, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, + 0x4e, 0x54, 0x49, 0x46, 0x59, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, + 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x61, 0x48, + 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, + 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x1a, 0x53, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x12, 0x4a, 0x0a, 0x12, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0xb7, 0x02, + 0x0a, 0x03, 0x47, 0x65, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, + 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, + 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x6e, + 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x6f, + 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x38, 0x0a, 0x16, 0x41, 0x75, 0x74, 0x6f, 0x6e, + 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, + 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x44, 0x0a, 0x1c, 0x41, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, + 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x6a, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x50, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x70, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, + 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x12, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x73, 0x65, 0x72, 0x1a, 0x2e, 0x0a, 0x04, 0x50, 0x65, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x03, 0x67, + 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, - 0x67, 0x65, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x73, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x1a, 0x2e, 0x0a, - 0x04, 0x50, 0x65, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x1a, 0x4f, 0x0a, - 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4f, - 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, - 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, - 0x52, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, - 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, + 0x67, 0x65, 0x6f, 0x1a, 0x4f, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, + 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4f, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, + 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x52, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, + 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, + 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, + 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x58, 0x0a, 0x2b, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, + 0x62, 0x65, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, - 0x65, 0x65, 0x72, 0x1a, 0x58, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, 0x74, - 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, - 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4e, 0x0a, - 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, - 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, - 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4b, 0x0a, - 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, - 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x1a, 0x4b, 0x0a, 0x21, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, - 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x42, 0x10, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0x5a, 0x0a, 0x04, 0x4d, 0x65, 0x74, - 0x61, 0x12, 0x28, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x06, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x06, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0xb6, 0x1c, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, - 0x24, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, - 0xbc, 0x1b, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x45, 0x41, 0x43, + 0x65, 0x65, 0x72, 0x1a, 0x4e, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, + 0x65, 0x65, 0x72, 0x1a, 0x4b, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, + 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, + 0x1a, 0x4b, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, + 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x42, 0x10, 0x0a, + 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, + 0x5a, 0x0a, 0x04, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x12, 0x28, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0xe6, 0x1c, 0x0a, 0x05, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xec, 0x1b, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, + 0x0a, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, + 0x57, 0x4e, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x22, - 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, - 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x10, 0x02, 0x12, 0x31, 0x0a, 0x2d, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, - 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x03, 0x12, - 0x21, 0x0a, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, - 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, - 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x10, 0x05, 0x12, - 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, - 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x33, 0x0a, 0x2f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x10, 0x07, 0x12, 0x17, - 0x0a, 0x13, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x09, 0x12, 0x27, 0x0a, 0x23, 0x42, + 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, + 0x10, 0x02, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, + 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, + 0x49, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, + 0x58, 0x49, 0x54, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, + 0x33, 0x0a, 0x2f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, + 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, + 0x4f, 0x46, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, + 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x12, 0x22, 0x0a, + 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, + 0x09, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, + 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x10, 0x0a, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, + 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, + 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x10, + 0x0c, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, + 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, + 0x41, 0x10, 0x0d, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x10, 0x0e, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, + 0x52, 0x47, 0x5f, 0x56, 0x32, 0x10, 0x0f, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, + 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x56, 0x32, 0x10, 0x10, 0x12, 0x24, 0x0a, + 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x56, + 0x32, 0x10, 0x11, 0x12, 0x2e, 0x0a, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, + 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x5f, 0x56, + 0x32, 0x10, 0x12, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, + 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x10, 0x13, + 0x12, 0x36, 0x0a, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, + 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, + 0x4f, 0x4f, 0x46, 0x5f, 0x56, 0x32, 0x10, 0x14, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x45, 0x4d, 0x50, + 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x56, 0x32, 0x10, 0x15, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x10, 0x16, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, - 0x43, 0x45, 0x10, 0x0a, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, - 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, - 0x47, 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x10, 0x0c, 0x12, 0x30, 0x0a, 0x2c, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, - 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x0d, 0x12, 0x25, 0x0a, - 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, - 0x56, 0x32, 0x10, 0x0e, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, - 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x10, - 0x0f, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, - 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, - 0x4e, 0x54, 0x5f, 0x56, 0x32, 0x10, 0x10, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x56, 0x32, 0x10, 0x11, 0x12, 0x2e, 0x0a, - 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, - 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x5f, 0x56, 0x32, 0x10, 0x12, 0x12, 0x2b, 0x0a, - 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x10, 0x13, 0x12, 0x36, 0x0a, 0x32, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x5f, 0x56, 0x32, - 0x10, 0x14, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, - 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x10, 0x15, 0x12, 0x25, - 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x5f, 0x56, 0x32, 0x10, 0x16, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, - 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x56, 0x32, 0x10, - 0x17, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, - 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, - 0x32, 0x10, 0x18, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, - 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x19, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, + 0x43, 0x45, 0x5f, 0x56, 0x32, 0x10, 0x17, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, + 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, + 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x10, 0x18, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, - 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x1a, 0x12, - 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, + 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x19, 0x12, + 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, - 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, - 0x10, 0x1b, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x10, 0x1c, 0x12, 0x3a, - 0x0a, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x1d, 0x12, 0x38, 0x0a, 0x34, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, - 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x10, 0x1e, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, + 0x49, 0x4e, 0x47, 0x10, 0x1a, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, + 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x10, 0x1b, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, + 0x49, 0x54, 0x10, 0x1c, 0x12, 0x3a, 0x0a, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, - 0x4c, 0x10, 0x1f, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, - 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x20, 0x12, 0x29, - 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, - 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x22, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x10, 0x23, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, - 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x10, 0x24, 0x12, 0x39, 0x0a, 0x35, 0x42, 0x45, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, + 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x1d, + 0x12, 0x38, 0x0a, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, + 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, + 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x1e, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, - 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x10, 0x25, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, - 0x26, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x27, - 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x28, 0x12, 0x1c, 0x0a, 0x18, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, - 0x56, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x29, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, 0x52, - 0x50, 0x43, 0x10, 0x2a, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2b, 0x12, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, + 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, 0x4c, 0x10, 0x1f, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, + 0x41, 0x52, 0x10, 0x20, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x22, 0x12, + 0x1a, 0x0a, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, + 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x23, 0x12, 0x23, 0x0a, 0x1f, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, + 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x10, 0x24, + 0x12, 0x39, 0x0a, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, + 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, + 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x25, 0x12, 0x1a, 0x0a, 0x16, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, + 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x26, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x45, 0x44, 0x10, 0x27, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, + 0x28, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x29, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, - 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2c, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x10, - 0x2d, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x2e, 0x12, 0x20, 0x0a, 0x1c, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, - 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x10, 0x2f, 0x12, 0x1e, 0x0a, - 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, - 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x30, 0x12, 0x27, 0x0a, - 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, - 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x31, 0x12, 0x2d, 0x0a, 0x29, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, - 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x10, 0x32, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, - 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x33, 0x12, 0x27, - 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, - 0x41, 0x54, 0x4f, 0x52, 0x53, 0x10, 0x34, 0x12, 0x30, 0x0a, 0x2c, 0x4d, 0x45, 0x56, 0x5f, 0x52, - 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x49, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x42, - 0x55, 0x49, 0x4c, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x55, 0x42, - 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x35, 0x12, 0x28, 0x0a, 0x24, 0x4d, 0x45, 0x56, - 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, - 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, - 0x44, 0x10, 0x36, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x33, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, - 0x4f, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x37, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x45, - 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, - 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x38, - 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x10, 0x39, 0x12, 0x16, 0x0a, 0x12, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, - 0x45, 0x10, 0x3a, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x10, 0x3b, 0x12, 0x16, 0x0a, 0x12, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x55, 0x4e, - 0x45, 0x10, 0x3c, 0x12, 0x22, 0x0a, 0x1e, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x45, - 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x3d, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, - 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x5f, - 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x3e, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, - 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x3f, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4a, 0x45, - 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x40, 0x12, 0x27, 0x0a, 0x23, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, - 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x48, - 0x41, 0x56, 0x45, 0x10, 0x41, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, - 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x57, 0x41, 0x4e, 0x54, 0x10, 0x42, 0x12, 0x2b, - 0x0a, 0x27, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, - 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, - 0x49, 0x44, 0x4f, 0x4e, 0x54, 0x57, 0x41, 0x4e, 0x54, 0x10, 0x43, 0x12, 0x27, 0x0a, 0x23, 0x4c, + 0x52, 0x45, 0x43, 0x56, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2a, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, + 0x52, 0x50, 0x43, 0x10, 0x2b, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2c, + 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x10, 0x2d, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, + 0x2e, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, + 0x41, 0x10, 0x2f, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x10, 0x30, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x31, 0x12, 0x2d, 0x0a, 0x29, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, + 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x54, + 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x32, 0x12, 0x27, 0x0a, 0x23, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, + 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, + 0x41, 0x52, 0x10, 0x33, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x10, 0x34, 0x12, 0x30, 0x0a, + 0x2c, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x49, 0x44, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x4c, 0x4f, + 0x43, 0x4b, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x35, 0x12, + 0x28, 0x0a, 0x24, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x50, 0x52, 0x4f, + 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x45, + 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x36, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x33, 0x5f, 0x56, + 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x37, + 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x56, 0x41, + 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x38, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x10, + 0x39, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0x3a, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x10, + 0x3b, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x10, 0x3c, 0x12, 0x22, 0x0a, 0x1e, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, + 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x3d, 0x12, 0x20, 0x0a, + 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x45, + 0x4c, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x3e, 0x12, + 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, + 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, + 0x3f, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x10, 0x40, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, + 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x48, 0x41, 0x56, 0x45, 0x10, 0x41, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, - 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x47, 0x52, 0x41, - 0x46, 0x54, 0x10, 0x44, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x57, 0x41, + 0x4e, 0x54, 0x10, 0x42, 0x12, 0x2b, 0x0a, 0x27, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, - 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x10, 0x45, 0x12, 0x26, 0x0a, - 0x22, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, - 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, - 0x49, 0x4f, 0x4e, 0x10, 0x46, 0x12, 0x21, 0x0a, 0x1d, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x4d, - 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x47, 0x12, 0x19, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, - 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, - 0x53, 0x10, 0x48, 0x12, 0x19, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, - 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x49, 0x12, 0x2e, - 0x0a, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, - 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, - 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x10, 0x4a, 0x12, 0x30, - 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, - 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x4b, - 0x12, 0x2e, 0x0a, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, - 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x4c, - 0x12, 0x24, 0x0a, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, - 0x42, 0x45, 0x41, 0x54, 0x10, 0x4d, 0x12, 0x2e, 0x0a, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, - 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x44, 0x59, 0x5f, 0x50, - 0x52, 0x4f, 0x42, 0x45, 0x10, 0x4e, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x4f, - 0x12, 0x24, 0x0a, 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, - 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, - 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x50, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, - 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x47, - 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x10, 0x51, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x58, - 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x4e, - 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x52, 0x12, 0x1e, 0x0a, 0x1a, - 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, - 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x10, 0x53, 0x12, 0x21, 0x0a, 0x1d, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x10, 0x54, 0x12, - 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, 0x43, - 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x10, 0x55, 0x12, 0x31, 0x0a, 0x2d, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, - 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, 0x56, 0x12, - 0x1b, 0x0a, 0x17, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x53, 0x10, 0x57, 0x12, 0x19, 0x0a, 0x15, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, - 0x4e, 0x54, 0x49, 0x46, 0x59, 0x10, 0x58, 0x22, 0x04, 0x08, 0x21, 0x10, 0x21, 0x2a, 0x1f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x50, 0x52, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, - 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x22, 0xf9, - 0x10, 0x0a, 0x15, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x12, 0x40, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x04, + 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x44, 0x4f, 0x4e, 0x54, 0x57, 0x41, 0x4e, 0x54, 0x10, + 0x43, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, + 0x4f, 0x4c, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x10, 0x44, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, + 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x55, 0x4e, + 0x45, 0x10, 0x45, 0x12, 0x26, 0x0a, 0x22, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x53, 0x55, 0x42, + 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x46, 0x12, 0x21, 0x0a, 0x1d, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, + 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x47, 0x12, 0x19, + 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, + 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x10, 0x48, 0x12, 0x19, 0x0a, 0x15, 0x4e, 0x4f, 0x44, + 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x49, 0x12, 0x2e, 0x0a, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x41, + 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, + 0x4f, 0x46, 0x10, 0x4a, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, + 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, + 0x45, 0x43, 0x41, 0x52, 0x10, 0x4b, 0x12, 0x2e, 0x0a, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, + 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, + 0x45, 0x43, 0x41, 0x52, 0x10, 0x4c, 0x12, 0x24, 0x0a, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, + 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x10, 0x4d, 0x12, 0x2e, 0x0a, 0x2a, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, + 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x43, 0x55, 0x53, + 0x54, 0x4f, 0x44, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x10, 0x4e, 0x12, 0x18, 0x0a, 0x14, + 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x53, 0x49, 0x5a, 0x45, 0x10, 0x4f, 0x12, 0x24, 0x0a, 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, + 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x4e, + 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x50, 0x12, 0x22, 0x0a, 0x1e, + 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x10, 0x51, + 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, + 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, + 0x10, 0x52, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, + 0x10, 0x53, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, + 0x4c, 0x4f, 0x42, 0x10, 0x54, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, + 0x10, 0x55, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, + 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, + 0x41, 0x54, 0x45, 0x10, 0x56, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x53, + 0x10, 0x57, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x10, 0x58, 0x12, 0x2e, 0x0a, + 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, + 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x59, 0x22, 0x04, 0x08, + 0x21, 0x10, 0x21, 0x2a, 0x1f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x50, 0x52, 0x49, 0x4e, 0x54, 0x5f, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x22, 0xf9, 0x10, 0x0a, 0x15, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, + 0x75, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, + 0x65, 0x64, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x08, - 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, 0x78, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, - 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x73, 0x12, 0x42, 0x0a, 0x0d, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6d, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6d, 0x73, - 0x12, 0x3a, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x73, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x08, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x67, 0x61, 0x73, 0x5f, 0x70, - 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, - 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x67, 0x61, 0x73, - 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x12, 0x48, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x61, 0x64, 0x73, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x77, 0x72, 0x69, 0x74, - 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, - 0x73, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, - 0x4c, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x12, 0x4c, 0x0a, - 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x12, 0x4a, 0x0a, 0x0a, 0x63, - 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x43, 0x6f, 0x64, - 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x6f, 0x64, - 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x1a, 0xfa, 0x01, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x61, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, - 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x0c, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, - 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x1a, 0x99, 0x03, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x48, - 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x15, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x12, 0x30, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x42, + 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, + 0x6d, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x5f, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, + 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x5f, 0x6d, 0x73, 0x12, 0x3a, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x5f, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, + 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, + 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x12, 0x40, 0x0a, 0x0c, + 0x6d, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0c, 0x6d, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x12, 0x48, + 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x64, 0x73, 0x52, 0x0b, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x73, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x61, + 0x63, 0x68, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, + 0x61, 0x63, 0x68, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, + 0x65, 0x12, 0x4a, 0x0a, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x1a, 0xfa, 0x01, + 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x08, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x63, 0x6f, - 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x1a, 0xac, 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x2f, 0x0a, 0x04, 0x68, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x68, 0x69, 0x74, 0x73, - 0x12, 0x33, 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6d, - 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x1a, - 0xa8, 0x02, 0x0a, 0x0e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x04, 0x68, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x68, - 0x69, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x0a, + 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, + 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x99, 0x03, 0x0a, 0x0b, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x12, 0x48, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x42, + 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, + 0x74, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, + 0x6f, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x15, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x64, 0x65, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x1a, 0xac, 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x63, 0x68, 0x65, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x04, 0x68, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x68, 0x69, 0x74, 0x5f, - 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, - 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x09, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x3b, 0x0a, - 0x0a, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, - 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x22, 0xe0, 0x47, 0x0a, 0x0e, 0x44, - 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, - 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x12, 0x1e, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, - 0x12, 0x67, 0x0a, 0x19, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, - 0x01, 0x48, 0x00, 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, - 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x5a, 0x0a, 0x13, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, - 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x6b, 0x0a, 0x19, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x6f, - 0x72, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x24, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, - 0x52, 0x47, 0x12, 0x86, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, - 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x12, 0x57, 0x0a, 0x12, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, - 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x42, - 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, - 0x48, 0x45, 0x41, 0x44, 0x12, 0x74, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, - 0x65, 0x78, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x56, 0x6f, - 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x42, 0x02, 0x18, 0x01, 0x48, - 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, - 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x12, 0x8b, 0x01, 0x0a, 0x24, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, - 0x6f, 0x6f, 0x66, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, - 0x66, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x2f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, - 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x12, 0x36, 0x0a, 0x13, 0x6d, 0x65, 0x6d, 0x70, - 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x13, 0x4d, 0x45, 0x4d, - 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x12, 0x5a, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x5e, 0x0a, 0x12, - 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, - 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x12, 0x6d, 0x0a, 0x18, - 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, - 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, - 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x12, 0x5d, 0x0a, 0x17, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x74, 0x65, 0x65, 0x48, 0x00, 0x52, 0x22, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, 0x79, 0x0a, 0x21, 0x65, 0x74, - 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, - 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x44, 0x41, 0x54, 0x41, 0x12, 0x6b, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x76, 0x32, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x52, 0x04, 0x68, 0x69, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x68, + 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x68, 0x69, 0x74, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x1a, 0xa8, 0x02, 0x0a, 0x0e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x04, 0x68, 0x69, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x04, 0x68, 0x69, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x6d, 0x69, 0x73, + 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, 0x38, + 0x0a, 0x08, 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, + 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x68, 0x69, 0x74, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x22, 0xdc, 0x48, 0x0a, 0x0e, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, + 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x4d, 0x65, 0x74, 0x61, + 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x67, 0x0a, 0x19, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, + 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x56, 0x32, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x32, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, - 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, - 0x56, 0x32, 0x12, 0x6f, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x5f, - 0x76, 0x32, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, - 0x5f, 0x56, 0x32, 0x12, 0x8a, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x32, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, 0x30, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, - 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x56, 0x32, - 0x12, 0x5b, 0x0a, 0x15, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x76, 0x32, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x56, 0x32, 0x48, 0x00, 0x52, 0x20, 0x42, 0x45, 0x41, + 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, + 0x5a, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x56, 0x32, 0x12, 0x78, 0x0a, - 0x1f, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x76, - 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x76, 0x32, - 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, - 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, + 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x6b, 0x0a, 0x19, 0x65, + 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x42, 0x02, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, + 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x12, 0x86, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x02, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, + 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, + 0x54, 0x12, 0x57, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x48, 0x65, 0x61, 0x64, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, - 0x45, 0x58, 0x49, 0x54, 0x5f, 0x56, 0x32, 0x12, 0x8f, 0x01, 0x0a, 0x27, 0x65, 0x74, 0x68, 0x5f, - 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, - 0x5f, 0x76, 0x32, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, - 0x66, 0x56, 0x32, 0x48, 0x00, 0x52, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, - 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, - 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x5f, 0x56, 0x32, 0x12, 0x38, 0x0a, 0x16, 0x6d, 0x65, 0x6d, - 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x76, 0x32, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x16, 0x4d, 0x45, 0x4d, - 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x56, 0x32, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x32, 0x18, 0x18, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, - 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x5f, 0x56, 0x32, 0x12, 0x62, 0x0a, 0x15, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, - 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x76, 0x32, 0x18, 0x19, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, 0x32, 0x48, 0x00, 0x52, - 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, - 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x56, 0x32, 0x12, 0x71, 0x0a, 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, - 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, - 0x6f, 0x72, 0x67, 0x5f, 0x76, 0x32, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, - 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x12, 0x82, 0x01, 0x0a, 0x25, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, - 0x68, 0x69, 0x6e, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x56, 0x32, 0x48, 0x00, 0x52, 0x30, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, - 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, - 0x54, 0x45, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, - 0x82, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, - 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x56, 0x32, - 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, - 0x48, 0x49, 0x4e, 0x47, 0x12, 0x7f, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x6f, 0x6c, 0x75, - 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, - 0x69, 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, - 0x5f, 0x45, 0x58, 0x49, 0x54, 0x12, 0x65, 0x0a, 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, - 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x56, 0x32, 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x12, 0x98, 0x01, 0x0a, - 0x2b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x1f, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, - 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x32, 0x48, 0x00, 0x52, - 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, - 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x12, 0x83, 0x01, 0x0a, 0x29, 0x65, 0x74, 0x68, 0x5f, - 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6e, 0x0a, - 0x1e, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x18, - 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x56, 0x32, - 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x12, 0x74, 0x0a, 0x1c, 0x65, 0x74, + 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, + 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, + 0x74, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, + 0x12, 0x8b, 0x01, 0x0a, 0x24, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, + 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x2f, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x12, 0x36, + 0x0a, 0x13, 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x48, + 0x00, 0x52, 0x13, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, + 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x5a, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, + 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x02, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, 0x4c, 0x12, 0x6a, 0x0a, - 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, - 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x22, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, - 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, - 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x6b, 0x0a, 0x20, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x24, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, - 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, - 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x54, 0x0a, 0x16, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x56, 0x32, 0x48, 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, - 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x5a, 0x0a, 0x14, - 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, - 0x64, 0x75, 0x74, 0x79, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, - 0x72, 0x44, 0x75, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, - 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x12, 0x8f, 0x01, 0x0a, 0x2a, 0x65, 0x74, 0x68, + 0x43, 0x4b, 0x12, 0x5e, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, + 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, + 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x23, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, + 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, + 0x43, 0x45, 0x12, 0x6d, 0x0a, 0x18, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, + 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x44, 0x65, 0x62, 0x75, + 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, + 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, + 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, + 0x47, 0x12, 0x5d, 0x0a, 0x17, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x48, 0x00, 0x52, 0x22, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, + 0x12, 0x79, 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2c, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, + 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, + 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x12, 0x6b, 0x0a, 0x1c, 0x65, + 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x32, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, 0x52, + 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, + 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x76, 0x32, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x12, 0x6f, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, + 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, + 0x72, 0x65, 0x6f, 0x72, 0x67, 0x5f, 0x76, 0x32, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x48, 0x00, + 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, + 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x12, 0x8a, 0x01, 0x0a, 0x25, 0x65, 0x74, + 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x76, 0x32, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x56, 0x32, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, + 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, + 0x49, 0x4e, 0x54, 0x5f, 0x56, 0x32, 0x12, 0x5b, 0x0a, 0x15, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, + 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x76, 0x32, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x56, 0x32, 0x48, + 0x00, 0x52, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, + 0x5f, 0x56, 0x32, 0x12, 0x78, 0x0a, 0x1f, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, + 0x78, 0x69, 0x74, 0x5f, 0x76, 0x32, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, 0x48, + 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, + 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x5f, 0x56, 0x32, 0x12, 0x8f, 0x01, + 0x0a, 0x27, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x64, + 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x76, 0x32, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, + 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x32, 0x48, 0x00, 0x52, 0x32, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x5f, 0x56, 0x32, 0x12, + 0x38, 0x0a, 0x16, 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x32, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x16, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, + 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x65, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6c, 0x61, 0x62, - 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x48, 0x00, 0x52, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x5f, 0x76, 0x32, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x12, 0x62, 0x0a, 0x15, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, + 0x76, 0x32, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x56, 0x32, 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, + 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x56, 0x32, 0x12, 0x71, 0x0a, + 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x5f, 0x76, 0x32, 0x18, 0x1a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, + 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, + 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, + 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, + 0x12, 0x82, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x56, + 0x32, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, - 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, - 0x65, 0x65, 0x72, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x48, - 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, - 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, 0x55, 0x0a, 0x18, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, - 0x70, 0x65, 0x65, 0x72, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, - 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, 0x18, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, - 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, - 0x72, 0x65, 0x63, 0x76, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, 0x65, 0x63, - 0x76, 0x52, 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x4c, 0x0a, - 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x65, - 0x6e, 0x64, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, - 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x41, 0x0a, 0x11, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, - 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x48, 0x00, 0x52, 0x11, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x12, 0x50, - 0x0a, 0x16, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, - 0x12, 0x59, 0x0a, 0x19, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, - 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x2e, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, - 0x52, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, - 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x61, 0x0a, 0x1c, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x2f, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, - 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, - 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x12, 0x5b, - 0x0a, 0x1a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x30, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, - 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, - 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x12, 0x7a, 0x0a, 0x23, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, - 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x78, 0x0a, 0x29, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, - 0x62, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x29, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x12, 0x7a, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x6c, 0x6f, 0x62, - 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, + 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, + 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0x82, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, + 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, + 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, + 0x68, 0x69, 0x6e, 0x67, 0x56, 0x32, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, + 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0x7f, 0x0a, 0x22, 0x65, 0x74, + 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, + 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, + 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, + 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x12, 0x65, 0x0a, 0x1b, 0x65, + 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, + 0x49, 0x54, 0x12, 0x98, 0x01, 0x0a, 0x2b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x6c, 0x73, 0x5f, 0x74, + 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, + 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x56, 0x32, 0x48, 0x00, 0x52, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, + 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x12, 0x83, 0x01, + 0x0a, 0x29, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x20, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x34, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, + 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x12, 0x6e, 0x0a, 0x1e, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x61, 0x6c, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x61, 0x6c, 0x56, 0x32, 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, + 0x57, 0x41, 0x4c, 0x12, 0x6a, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, + 0x72, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x53, + 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, + 0x6b, 0x0a, 0x20, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, + 0x63, 0x61, 0x72, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, + 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x54, 0x0a, 0x16, + 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x12, 0x5a, 0x0a, 0x14, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x75, 0x74, 0x79, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1f, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, + 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x12, 0x8f, + 0x01, 0x0a, 0x2a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x27, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, + 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, + 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x41, 0x64, + 0x64, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, 0x55, + 0x0a, 0x18, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, 0x18, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, + 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x76, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x2a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x52, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, + 0x52, 0x50, 0x43, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x2b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, + 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x50, + 0x43, 0x12, 0x41, 0x0a, 0x11, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, + 0x65, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x48, + 0x00, 0x52, 0x11, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, + 0x4a, 0x4f, 0x49, 0x4e, 0x12, 0x50, 0x0a, 0x16, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x2d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x16, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x59, 0x0a, 0x19, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, + 0x44, 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, + 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, + 0x44, 0x41, 0x54, 0x41, 0x12, 0x5b, 0x0a, 0x1a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x12, 0x7a, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, + 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, - 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x53, - 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, - 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x52, 0x0a, - 0x11, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x73, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, - 0x53, 0x12, 0x7d, 0x0a, 0x2c, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x62, - 0x69, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, - 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, - 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x42, 0x69, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x48, 0x00, 0x52, 0x2c, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x49, - 0x44, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x45, 0x52, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, - 0x12, 0x74, 0x0a, 0x1b, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, - 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, - 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x48, 0x00, - 0x52, 0x24, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x50, - 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x45, 0x4c, - 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x33, - 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, - 0x32, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x33, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x72, 0x0a, 0x20, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, - 0x6c, 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, - 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x20, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, - 0x4c, 0x41, 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x52, 0x45, - 0x47, 0x49, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6a, 0x0a, 0x1a, 0x65, 0x74, - 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x48, 0x00, 0x52, - 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, - 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x70, 0x63, 0x18, - 0x3a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, - 0x5f, 0x52, 0x50, 0x43, 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, - 0x72, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4c, - 0x65, 0x61, 0x76, 0x65, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x66, 0x74, - 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x2e, 0x47, 0x72, 0x61, 0x66, 0x74, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x78, 0x0a, + 0x29, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, + 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x61, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x29, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, + 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x45, + 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x7a, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, + 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, + 0x62, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x33, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x23, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, + 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, + 0x43, 0x41, 0x52, 0x12, 0x52, 0x0a, 0x11, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, + 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, + 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x12, 0x7d, 0x0a, 0x2c, 0x6d, 0x65, 0x76, 0x5f, 0x72, + 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x62, 0x69, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x75, 0x62, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x42, 0x69, + 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x2c, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, + 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x49, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x42, 0x55, + 0x49, 0x4c, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x55, 0x42, 0x4d, + 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x12, 0x74, 0x0a, 0x1b, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, + 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x69, + 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x69, 0x76, + 0x65, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x24, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, + 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, + 0x41, 0x44, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x12, 0x5e, 0x0a, 0x16, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x33, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x33, 0x5f, 0x56, 0x41, 0x4c, + 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x72, 0x0a, 0x20, + 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x38, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, + 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x20, + 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, + 0x54, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x12, 0x6a, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x18, 0x39, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f, 0x73, + 0x73, 0x69, 0x70, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x12, 0x4c, 0x0a, 0x15, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x72, 0x6f, + 0x70, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x50, + 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x76, 0x65, + 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, - 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, 0x72, 0x75, 0x6e, 0x65, + 0x5f, 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x47, 0x72, 0x61, 0x66, 0x74, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x12, 0x67, 0x0a, 0x1e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, - 0x1e, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x55, - 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, - 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, - 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, - 0x47, 0x45, 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, - 0x63, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, - 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x5e, 0x0a, 0x1b, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1b, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, - 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x68, 0x61, 0x76, 0x65, 0x18, 0x42, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x48, 0x61, 0x76, 0x65, 0x4d, 0x65, 0x74, - 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, - 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x48, 0x41, 0x56, 0x45, 0x12, 0x75, 0x0a, 0x23, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x77, - 0x61, 0x6e, 0x74, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, - 0x57, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, - 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x57, - 0x41, 0x4e, 0x54, 0x12, 0x81, 0x01, 0x0a, 0x27, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, + 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, 0x3d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x2e, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x12, 0x67, 0x0a, 0x1e, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x75, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x3e, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1e, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x45, + 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, + 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, + 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1c, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, + 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x5e, 0x0a, 0x1b, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6a, 0x65, + 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, + 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1b, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4a, + 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x75, 0x0a, 0x23, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x68, 0x61, + 0x76, 0x65, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x48, + 0x61, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, + 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x48, 0x41, + 0x56, 0x45, 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, + 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x77, 0x61, 0x6e, 0x74, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x57, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, + 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, + 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x57, 0x41, 0x4e, 0x54, 0x12, 0x81, 0x01, 0x0a, 0x27, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x6f, 0x6e, + 0x74, 0x77, 0x61, 0x6e, 0x74, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x49, 0x44, 0x6f, 0x6e, 0x74, 0x57, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, + 0x65, 0x6d, 0x48, 0x00, 0x52, 0x27, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, + 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x44, 0x4f, 0x4e, 0x54, 0x57, 0x41, 0x4e, 0x54, 0x12, 0x75, 0x0a, + 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x67, + 0x72, 0x61, 0x66, 0x74, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x47, 0x72, 0x61, 0x66, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, + 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, + 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x47, + 0x52, 0x41, 0x46, 0x54, 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x6f, 0x6e, 0x74, 0x77, 0x61, 0x6e, 0x74, 0x18, - 0x44, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x44, 0x6f, 0x6e, 0x74, - 0x57, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x27, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, - 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x44, - 0x4f, 0x4e, 0x54, 0x57, 0x41, 0x4e, 0x54, 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, 0x46, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, + 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x12, 0x6a, 0x0a, 0x22, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, 0x75, 0x62, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, + 0x6d, 0x48, 0x00, 0x52, 0x22, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, + 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x64, 0x0a, 0x1d, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x45, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61, 0x66, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, - 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, - 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x12, 0x75, - 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, - 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, - 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, - 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, - 0x50, 0x52, 0x55, 0x4e, 0x45, 0x12, 0x6a, 0x0a, 0x22, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x73, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x47, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, - 0x53, 0x75, 0x62, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x22, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, - 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, - 0x4e, 0x12, 0x64, 0x0a, 0x1d, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, - 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x1d, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, - 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x52, 0x0a, 0x15, 0x6e, 0x6f, 0x64, 0x65, 0x5f, - 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, - 0x18, 0x49, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6e, 0x6f, - 0x64, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, - 0x75, 0x73, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, - 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x12, 0x52, 0x0a, 0x15, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, - 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x12, - 0x93, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, - 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x4b, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, - 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, - 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, - 0x42, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, - 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x12, 0x7e, 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, - 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, - 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x8e, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x1d, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, + 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x52, 0x0a, + 0x15, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6e, + 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x43, + 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, + 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, + 0x53, 0x12, 0x52, 0x0a, 0x15, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x15, + 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, + 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x93, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, - 0x65, 0x63, 0x61, 0x72, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, - 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, - 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, - 0x55, 0x42, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, - 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x6d, 0x0a, 0x20, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, - 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, - 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, - 0x74, 0x48, 0x00, 0x52, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, - 0x54, 0x42, 0x45, 0x41, 0x54, 0x12, 0x4d, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x18, 0x4f, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x48, 0x00, 0x52, 0x15, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, - 0x54, 0x49, 0x46, 0x59, 0x12, 0x86, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x5f, 0x70, 0x72, - 0x6f, 0x62, 0x65, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x48, - 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, - 0x52, 0x50, 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, - 0x43, 0x55, 0x53, 0x54, 0x4f, 0x44, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x12, 0x4f, 0x0a, - 0x14, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x48, 0x00, 0x52, 0x14, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x12, 0x71, - 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x67, 0x69, - 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x18, 0xca, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, - 0x41, 0x50, 0x49, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, - 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, - 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, - 0x44, 0x12, 0x6b, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x65, - 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x6c, - 0x6f, 0x62, 0x73, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, - 0x65, 0x41, 0x50, 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x48, 0x00, 0x52, 0x1e, - 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x12, 0x66, - 0x0a, 0x1c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x67, 0x69, - 0x6e, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0xcc, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4e, 0x65, 0x77, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x1c, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, - 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x60, 0x0a, 0x1a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x62, - 0x6c, 0x6f, 0x62, 0x73, 0x18, 0xcd, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, + 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, + 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x32, 0x48, 0x00, 0x52, + 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, + 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, + 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x12, 0x7e, 0x0a, 0x21, 0x65, + 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, + 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x2c, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, + 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x8e, 0x01, 0x0a, 0x2a, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, + 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, + 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, + 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, + 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, + 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x6d, 0x0a, 0x20, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x79, 0x6e, + 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, + 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, + 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x48, 0x00, 0x52, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, + 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x12, 0x4d, 0x0a, 0x15, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x79, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x79, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x12, 0x86, 0x01, 0x0a, 0x2a, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x64, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, + 0x50, 0x72, 0x6f, 0x62, 0x65, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, + 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x44, 0x59, 0x5f, 0x50, 0x52, + 0x4f, 0x42, 0x45, 0x12, 0x4f, 0x0a, 0x14, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0xc9, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x48, 0x00, 0x52, 0x14, + 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x53, 0x49, 0x5a, 0x45, 0x12, 0x71, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, + 0x73, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x65, 0x77, + 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0xca, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, + 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, + 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x45, 0x57, 0x5f, + 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x6b, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x73, 0x65, + 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x67, 0x65, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, + 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, + 0x62, 0x73, 0x48, 0x00, 0x52, 0x1e, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, + 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, + 0x4c, 0x4f, 0x42, 0x53, 0x12, 0x66, 0x0a, 0x1c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x18, 0xcc, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x67, 0x69, - 0x6e, 0x65, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x48, 0x00, 0x52, 0x1a, 0x45, 0x58, - 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x47, - 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x12, 0x4f, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, - 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x18, 0xce, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x1d, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x12, 0x69, 0x0a, 0x1c, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0xcf, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, - 0x54, 0x54, 0x45, 0x45, 0x12, 0x75, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0xd0, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x59, 0x4e, - 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x12, 0x58, 0x0a, 0x17, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0xd1, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x17, 0x45, 0x58, - 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4d, 0x45, - 0x54, 0x52, 0x49, 0x43, 0x53, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x2a, 0x6c, 0x0a, - 0x0c, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, - 0x19, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, - 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x53, 0x4e, - 0x4f, 0x4f, 0x50, 0x45, 0x52, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x4e, 0x47, 0x49, 0x4e, - 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x32, 0x58, 0x0a, 0x0d, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0c, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x19, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, 0x2f, - 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x78, - 0x61, 0x74, 0x75, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x65, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x1c, + 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, + 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x60, 0x0a, 0x1a, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x18, 0xcd, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, + 0x48, 0x00, 0x52, 0x1a, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, + 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x12, 0x4f, + 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, + 0x62, 0x6c, 0x6f, 0x62, 0x18, 0xce, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x48, 0x00, + 0x52, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x12, + 0x69, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, + 0xcf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x79, + 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, + 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, 0x43, + 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, 0x75, 0x0a, 0x22, 0x65, 0x74, + 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x18, 0xd0, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, + 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, + 0x43, 0x4b, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, + 0x45, 0x12, 0x58, 0x0a, 0x17, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0xd1, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x48, 0x00, 0x52, 0x17, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x53, 0x12, 0x7a, 0x0a, 0x1f, 0x65, + 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0xd2, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x43, 0x43, 0x45, + 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x2a, + 0x6c, 0x0a, 0x0c, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x1d, 0x0a, 0x19, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, + 0x0a, 0x15, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, + 0x53, 0x4e, 0x4f, 0x4f, 0x50, 0x45, 0x52, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x4e, 0x47, + 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x32, 0x58, 0x0a, + 0x0d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x47, + 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x19, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, + 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2f, 0x78, 0x61, 0x74, 0x75, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -16228,7 +16340,7 @@ func file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP() []byte { } var file_pkg_proto_xatu_event_ingester_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_pkg_proto_xatu_event_ingester_proto_msgTypes = make([]protoimpl.MessageInfo, 140) +var file_pkg_proto_xatu_event_ingester_proto_msgTypes = make([]protoimpl.MessageInfo, 141) var file_pkg_proto_xatu_event_ingester_proto_goTypes = []any{ (EngineSource)(0), // 0: xatu.EngineSource (Event_Name)(0), // 1: xatu.Event.Name @@ -16303,212 +16415,214 @@ var file_pkg_proto_xatu_event_ingester_proto_goTypes = []any{ (*ClientMeta_AdditionalEthV2BeaconBlockBLSToExecutionChangeData)(nil), // 70: xatu.ClientMeta.AdditionalEthV2BeaconBlockBLSToExecutionChangeData (*ClientMeta_AdditionalEthV2BeaconBlockExecutionTransactionData)(nil), // 71: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData (*ClientMeta_AdditionalEthV2BeaconBlockWithdrawalData)(nil), // 72: xatu.ClientMeta.AdditionalEthV2BeaconBlockWithdrawalData - (*ClientMeta_AttestationDataSnapshot)(nil), // 73: xatu.ClientMeta.AttestationDataSnapshot - (*ClientMeta_AdditionalEthV1ValidatorAttestationDataData)(nil), // 74: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData - (*ClientMeta_AdditionalEthV1EventsBlobSidecarData)(nil), // 75: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData - (*ClientMeta_AdditionalEthV1EventsDataColumnSidecarData)(nil), // 76: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData - (*ClientMeta_AdditionalEthV1BeaconBlobSidecarData)(nil), // 77: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData - (*ClientMeta_AdditionalBeaconP2PAttestationData)(nil), // 78: xatu.ClientMeta.AdditionalBeaconP2PAttestationData - (*ClientMeta_AdditionalEthV1ProposerDutyData)(nil), // 79: xatu.ClientMeta.AdditionalEthV1ProposerDutyData - (*ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData)(nil), // 80: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData - (*ClientMeta_AdditionalLibP2PTraceAddPeerData)(nil), // 81: xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData - (*ClientMeta_AdditionalLibP2PTraceRemovePeerData)(nil), // 82: xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData - (*ClientMeta_AdditionalLibP2PTraceRecvRPCData)(nil), // 83: xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData - (*ClientMeta_AdditionalLibP2PTraceSendRPCData)(nil), // 84: xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData - (*ClientMeta_AdditionalLibP2PTraceDropRPCData)(nil), // 85: xatu.ClientMeta.AdditionalLibP2PTraceDropRPCData - (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData)(nil), // 86: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIHaveData - (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData)(nil), // 87: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIWantData - (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData)(nil), // 88: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIDontWantData - (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData)(nil), // 89: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlGraftData - (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData)(nil), // 90: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlPruneData - (*ClientMeta_AdditionalLibP2PTraceJoinData)(nil), // 91: xatu.ClientMeta.AdditionalLibP2PTraceJoinData - (*ClientMeta_AdditionalLibP2PTraceLeaveData)(nil), // 92: xatu.ClientMeta.AdditionalLibP2PTraceLeaveData - (*ClientMeta_AdditionalLibP2PTraceGraftData)(nil), // 93: xatu.ClientMeta.AdditionalLibP2PTraceGraftData - (*ClientMeta_AdditionalLibP2PTracePruneData)(nil), // 94: xatu.ClientMeta.AdditionalLibP2PTracePruneData - (*ClientMeta_AdditionalLibP2PTraceDuplicateMessageData)(nil), // 95: xatu.ClientMeta.AdditionalLibP2PTraceDuplicateMessageData - (*ClientMeta_AdditionalLibP2PTraceDeliverMessageData)(nil), // 96: xatu.ClientMeta.AdditionalLibP2PTraceDeliverMessageData - (*ClientMeta_AdditionalLibP2PTracePublishMessageData)(nil), // 97: xatu.ClientMeta.AdditionalLibP2PTracePublishMessageData - (*ClientMeta_AdditionalLibP2PTraceRejectMessageData)(nil), // 98: xatu.ClientMeta.AdditionalLibP2PTraceRejectMessageData - (*ClientMeta_AdditionalLibP2PTraceConnectedData)(nil), // 99: xatu.ClientMeta.AdditionalLibP2PTraceConnectedData - (*ClientMeta_AdditionalLibP2PTraceDisconnectedData)(nil), // 100: xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData - (*ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData)(nil), // 101: xatu.ClientMeta.AdditionalLibP2PTraceSyntheticHeartbeatData - (*ClientMeta_AdditionalLibP2PTraceHandleMetadataData)(nil), // 102: xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData - (*ClientMeta_AdditionalLibP2PTraceHandleStatusData)(nil), // 103: xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData - (*ClientMeta_AdditionalLibP2PTraceIdentifyData)(nil), // 104: xatu.ClientMeta.AdditionalLibP2PTraceIdentifyData - (*ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData)(nil), // 105: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData - (*ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData)(nil), // 106: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaSubscriptionData - (*ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData)(nil), // 107: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaMessageData - (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData)(nil), // 108: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData - (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData)(nil), // 109: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData - (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData)(nil), // 110: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData - (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData)(nil), // 111: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData - (*ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData)(nil), // 112: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData - (*ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData)(nil), // 113: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData - (*ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData)(nil), // 114: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData - (*ClientMeta_AdditionalEthV1ValidatorsData)(nil), // 115: xatu.ClientMeta.AdditionalEthV1ValidatorsData - (*ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData)(nil), // 116: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData - (*ClientMeta_AdditionalMevRelayPayloadDeliveredData)(nil), // 117: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData - (*ClientMeta_AdditionalEthV3ValidatorBlockData)(nil), // 118: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData - (*ClientMeta_AdditionalMevRelayValidatorRegistrationData)(nil), // 119: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData - (*ClientMeta_AdditionalNodeRecordConsensusData)(nil), // 120: xatu.ClientMeta.AdditionalNodeRecordConsensusData - (*ClientMeta_AdditionalConsensusEngineAPINewPayloadData)(nil), // 121: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData - (*ClientMeta_AdditionalConsensusEngineAPIGetBlobsData)(nil), // 122: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData - (*ClientMeta_AdditionalEthV1BeaconBlobData)(nil), // 123: xatu.ClientMeta.AdditionalEthV1BeaconBlobData - (*ClientMeta_Ethereum_Network)(nil), // 124: xatu.ClientMeta.Ethereum.Network - (*ClientMeta_Ethereum_Execution)(nil), // 125: xatu.ClientMeta.Ethereum.Execution - (*ClientMeta_Ethereum_Consensus)(nil), // 126: xatu.ClientMeta.Ethereum.Consensus - (*ServerMeta_Event)(nil), // 127: xatu.ServerMeta.Event - (*ServerMeta_Geo)(nil), // 128: xatu.ServerMeta.Geo - (*ServerMeta_Client)(nil), // 129: xatu.ServerMeta.Client - (*ServerMeta_Peer)(nil), // 130: xatu.ServerMeta.Peer - (*ServerMeta_AdditionalBeaconP2PAttestationData)(nil), // 131: xatu.ServerMeta.AdditionalBeaconP2PAttestationData - (*ServerMeta_AdditionalLibp2PTraceConnectedData)(nil), // 132: xatu.ServerMeta.AdditionalLibp2PTraceConnectedData - (*ServerMeta_AdditionalLibp2PTraceDisconnectedData)(nil), // 133: xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData - (*ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData)(nil), // 134: xatu.ServerMeta.AdditionalLibP2PTraceSyntheticHeartbeatData - (*ServerMeta_AdditionalLibp2PTraceIdentifyData)(nil), // 135: xatu.ServerMeta.AdditionalLibp2PTraceIdentifyData - (*ServerMeta_AdditionalNodeRecordConsensusData)(nil), // 136: xatu.ServerMeta.AdditionalNodeRecordConsensusData - (*ServerMeta_AdditionalNodeRecordExecutionData)(nil), // 137: xatu.ServerMeta.AdditionalNodeRecordExecutionData - (*ExecutionBlockMetrics_StateReads)(nil), // 138: xatu.ExecutionBlockMetrics.StateReads - (*ExecutionBlockMetrics_StateWrites)(nil), // 139: xatu.ExecutionBlockMetrics.StateWrites - (*ExecutionBlockMetrics_CacheEntry)(nil), // 140: xatu.ExecutionBlockMetrics.CacheEntry - (*ExecutionBlockMetrics_CodeCacheEntry)(nil), // 141: xatu.ExecutionBlockMetrics.CodeCacheEntry - (*wrapperspb.UInt64Value)(nil), // 142: google.protobuf.UInt64Value - (*timestamppb.Timestamp)(nil), // 143: google.protobuf.Timestamp - (*v1.ForkChoice)(nil), // 144: xatu.eth.v1.ForkChoice - (*v1.EventChainReorg)(nil), // 145: xatu.eth.v1.EventChainReorg - (*v1.ForkChoiceV2)(nil), // 146: xatu.eth.v1.ForkChoiceV2 - (*v1.EventChainReorgV2)(nil), // 147: xatu.eth.v1.EventChainReorgV2 - (*v1.Validator)(nil), // 148: xatu.eth.v1.Validator - (*v1.SyncCommittee)(nil), // 149: xatu.eth.v1.SyncCommittee - (*wrapperspb.UInt32Value)(nil), // 150: google.protobuf.UInt32Value - (ModuleName)(0), // 151: xatu.ModuleName - (*wrapperspb.DoubleValue)(nil), // 152: google.protobuf.DoubleValue - (*v1.Attestation)(nil), // 153: xatu.eth.v1.Attestation - (*v1.EventBlock)(nil), // 154: xatu.eth.v1.EventBlock - (*v1.EventFinalizedCheckpoint)(nil), // 155: xatu.eth.v1.EventFinalizedCheckpoint - (*v1.EventHead)(nil), // 156: xatu.eth.v1.EventHead - (*v1.EventVoluntaryExit)(nil), // 157: xatu.eth.v1.EventVoluntaryExit - (*v1.EventContributionAndProof)(nil), // 158: xatu.eth.v1.EventContributionAndProof - (*v2.EventBlock)(nil), // 159: xatu.eth.v2.EventBlock - (*v1.Committee)(nil), // 160: xatu.eth.v1.Committee - (*v1.AttestationDataV2)(nil), // 161: xatu.eth.v1.AttestationDataV2 - (*v1.AttestationV2)(nil), // 162: xatu.eth.v1.AttestationV2 - (*v1.EventBlockV2)(nil), // 163: xatu.eth.v1.EventBlockV2 - (*v1.EventFinalizedCheckpointV2)(nil), // 164: xatu.eth.v1.EventFinalizedCheckpointV2 - (*v1.EventHeadV2)(nil), // 165: xatu.eth.v1.EventHeadV2 - (*v1.EventVoluntaryExitV2)(nil), // 166: xatu.eth.v1.EventVoluntaryExitV2 - (*v1.EventContributionAndProofV2)(nil), // 167: xatu.eth.v1.EventContributionAndProofV2 - (*v2.EventBlockV2)(nil), // 168: xatu.eth.v2.EventBlockV2 - (*v1.AttesterSlashingV2)(nil), // 169: xatu.eth.v1.AttesterSlashingV2 - (*v1.ProposerSlashingV2)(nil), // 170: xatu.eth.v1.ProposerSlashingV2 - (*v1.SignedVoluntaryExitV2)(nil), // 171: xatu.eth.v1.SignedVoluntaryExitV2 - (*v1.DepositV2)(nil), // 172: xatu.eth.v1.DepositV2 - (*v2.SignedBLSToExecutionChangeV2)(nil), // 173: xatu.eth.v2.SignedBLSToExecutionChangeV2 - (*v1.Transaction)(nil), // 174: xatu.eth.v1.Transaction - (*v1.WithdrawalV2)(nil), // 175: xatu.eth.v1.WithdrawalV2 - (*v1.EventBlobSidecar)(nil), // 176: xatu.eth.v1.EventBlobSidecar - (*v1.BlobSidecar)(nil), // 177: xatu.eth.v1.BlobSidecar - (*v1.ProposerDuty)(nil), // 178: xatu.eth.v1.ProposerDuty - (*v1.ElaboratedAttestation)(nil), // 179: xatu.eth.v1.ElaboratedAttestation - (*libp2p.AddPeer)(nil), // 180: xatu.libp2p.AddPeer - (*libp2p.RemovePeer)(nil), // 181: xatu.libp2p.RemovePeer - (*libp2p.RecvRPC)(nil), // 182: xatu.libp2p.RecvRPC - (*libp2p.SendRPC)(nil), // 183: xatu.libp2p.SendRPC - (*libp2p.Join)(nil), // 184: xatu.libp2p.Join - (*libp2p.Connected)(nil), // 185: xatu.libp2p.Connected - (*libp2p.Disconnected)(nil), // 186: xatu.libp2p.Disconnected - (*libp2p.HandleMetadata)(nil), // 187: xatu.libp2p.HandleMetadata - (*libp2p.HandleStatus)(nil), // 188: xatu.libp2p.HandleStatus - (*gossipsub.BeaconBlock)(nil), // 189: xatu.libp2p.gossipsub.eth.BeaconBlock - (*gossipsub.BlobSidecar)(nil), // 190: xatu.libp2p.gossipsub.eth.BlobSidecar - (*mevrelay.BidTrace)(nil), // 191: xatu.mevrelay.BidTrace - (*mevrelay.ProposerPayloadDelivered)(nil), // 192: xatu.mevrelay.ProposerPayloadDelivered - (*mevrelay.ValidatorRegistration)(nil), // 193: xatu.mevrelay.ValidatorRegistration - (*v1.EventBlockGossip)(nil), // 194: xatu.eth.v1.EventBlockGossip - (*libp2p.DropRPC)(nil), // 195: xatu.libp2p.DropRPC - (*libp2p.Leave)(nil), // 196: xatu.libp2p.Leave - (*libp2p.Graft)(nil), // 197: xatu.libp2p.Graft - (*libp2p.Prune)(nil), // 198: xatu.libp2p.Prune - (*libp2p.DuplicateMessage)(nil), // 199: xatu.libp2p.DuplicateMessage - (*libp2p.DeliverMessage)(nil), // 200: xatu.libp2p.DeliverMessage - (*libp2p.PublishMessage)(nil), // 201: xatu.libp2p.PublishMessage - (*libp2p.RejectMessage)(nil), // 202: xatu.libp2p.RejectMessage - (*libp2p.ControlIHaveMetaItem)(nil), // 203: xatu.libp2p.ControlIHaveMetaItem - (*libp2p.ControlIWantMetaItem)(nil), // 204: xatu.libp2p.ControlIWantMetaItem - (*libp2p.ControlIDontWantMetaItem)(nil), // 205: xatu.libp2p.ControlIDontWantMetaItem - (*libp2p.ControlGraftMetaItem)(nil), // 206: xatu.libp2p.ControlGraftMetaItem - (*libp2p.ControlPruneMetaItem)(nil), // 207: xatu.libp2p.ControlPruneMetaItem - (*libp2p.SubMetaItem)(nil), // 208: xatu.libp2p.SubMetaItem - (*libp2p.MessageMetaItem)(nil), // 209: xatu.libp2p.MessageMetaItem - (*noderecord.Consensus)(nil), // 210: xatu.noderecord.Consensus - (*noderecord.Execution)(nil), // 211: xatu.noderecord.Execution - (*v1.SignedAggregateAttestationAndProofV2)(nil), // 212: xatu.eth.v1.SignedAggregateAttestationAndProofV2 - (*v1.EventDataColumnSidecar)(nil), // 213: xatu.eth.v1.EventDataColumnSidecar - (*gossipsub.DataColumnSidecar)(nil), // 214: xatu.libp2p.gossipsub.eth.DataColumnSidecar - (*libp2p.SyntheticHeartbeat)(nil), // 215: xatu.libp2p.SyntheticHeartbeat - (*libp2p.Identify)(nil), // 216: xatu.libp2p.Identify - (*libp2p.DataColumnCustodyProbe)(nil), // 217: xatu.libp2p.DataColumnCustodyProbe - (*v1.Blob)(nil), // 218: xatu.eth.v1.Blob - (*libp2p.Peer)(nil), // 219: xatu.libp2p.Peer - (*wrapperspb.BoolValue)(nil), // 220: google.protobuf.BoolValue - (*libp2p.TraceEventMetadata)(nil), // 221: xatu.libp2p.TraceEventMetadata - (*wrapperspb.StringValue)(nil), // 222: google.protobuf.StringValue - (*mevrelay.Relay)(nil), // 223: xatu.mevrelay.Relay - (*wrapperspb.Int64Value)(nil), // 224: google.protobuf.Int64Value + (*ClientMeta_AdditionalEthV2BeaconBlockAccessListData)(nil), // 73: xatu.ClientMeta.AdditionalEthV2BeaconBlockAccessListData + (*ClientMeta_AttestationDataSnapshot)(nil), // 74: xatu.ClientMeta.AttestationDataSnapshot + (*ClientMeta_AdditionalEthV1ValidatorAttestationDataData)(nil), // 75: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData + (*ClientMeta_AdditionalEthV1EventsBlobSidecarData)(nil), // 76: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData + (*ClientMeta_AdditionalEthV1EventsDataColumnSidecarData)(nil), // 77: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData + (*ClientMeta_AdditionalEthV1BeaconBlobSidecarData)(nil), // 78: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData + (*ClientMeta_AdditionalBeaconP2PAttestationData)(nil), // 79: xatu.ClientMeta.AdditionalBeaconP2PAttestationData + (*ClientMeta_AdditionalEthV1ProposerDutyData)(nil), // 80: xatu.ClientMeta.AdditionalEthV1ProposerDutyData + (*ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData)(nil), // 81: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData + (*ClientMeta_AdditionalLibP2PTraceAddPeerData)(nil), // 82: xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData + (*ClientMeta_AdditionalLibP2PTraceRemovePeerData)(nil), // 83: xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData + (*ClientMeta_AdditionalLibP2PTraceRecvRPCData)(nil), // 84: xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData + (*ClientMeta_AdditionalLibP2PTraceSendRPCData)(nil), // 85: xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData + (*ClientMeta_AdditionalLibP2PTraceDropRPCData)(nil), // 86: xatu.ClientMeta.AdditionalLibP2PTraceDropRPCData + (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData)(nil), // 87: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIHaveData + (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData)(nil), // 88: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIWantData + (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData)(nil), // 89: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIDontWantData + (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData)(nil), // 90: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlGraftData + (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData)(nil), // 91: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlPruneData + (*ClientMeta_AdditionalLibP2PTraceJoinData)(nil), // 92: xatu.ClientMeta.AdditionalLibP2PTraceJoinData + (*ClientMeta_AdditionalLibP2PTraceLeaveData)(nil), // 93: xatu.ClientMeta.AdditionalLibP2PTraceLeaveData + (*ClientMeta_AdditionalLibP2PTraceGraftData)(nil), // 94: xatu.ClientMeta.AdditionalLibP2PTraceGraftData + (*ClientMeta_AdditionalLibP2PTracePruneData)(nil), // 95: xatu.ClientMeta.AdditionalLibP2PTracePruneData + (*ClientMeta_AdditionalLibP2PTraceDuplicateMessageData)(nil), // 96: xatu.ClientMeta.AdditionalLibP2PTraceDuplicateMessageData + (*ClientMeta_AdditionalLibP2PTraceDeliverMessageData)(nil), // 97: xatu.ClientMeta.AdditionalLibP2PTraceDeliverMessageData + (*ClientMeta_AdditionalLibP2PTracePublishMessageData)(nil), // 98: xatu.ClientMeta.AdditionalLibP2PTracePublishMessageData + (*ClientMeta_AdditionalLibP2PTraceRejectMessageData)(nil), // 99: xatu.ClientMeta.AdditionalLibP2PTraceRejectMessageData + (*ClientMeta_AdditionalLibP2PTraceConnectedData)(nil), // 100: xatu.ClientMeta.AdditionalLibP2PTraceConnectedData + (*ClientMeta_AdditionalLibP2PTraceDisconnectedData)(nil), // 101: xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData + (*ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData)(nil), // 102: xatu.ClientMeta.AdditionalLibP2PTraceSyntheticHeartbeatData + (*ClientMeta_AdditionalLibP2PTraceHandleMetadataData)(nil), // 103: xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData + (*ClientMeta_AdditionalLibP2PTraceHandleStatusData)(nil), // 104: xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData + (*ClientMeta_AdditionalLibP2PTraceIdentifyData)(nil), // 105: xatu.ClientMeta.AdditionalLibP2PTraceIdentifyData + (*ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData)(nil), // 106: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData + (*ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData)(nil), // 107: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaSubscriptionData + (*ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData)(nil), // 108: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaMessageData + (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData)(nil), // 109: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData + (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData)(nil), // 110: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData + (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData)(nil), // 111: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData + (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData)(nil), // 112: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData + (*ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData)(nil), // 113: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData + (*ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData)(nil), // 114: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData + (*ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData)(nil), // 115: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData + (*ClientMeta_AdditionalEthV1ValidatorsData)(nil), // 116: xatu.ClientMeta.AdditionalEthV1ValidatorsData + (*ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData)(nil), // 117: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData + (*ClientMeta_AdditionalMevRelayPayloadDeliveredData)(nil), // 118: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData + (*ClientMeta_AdditionalEthV3ValidatorBlockData)(nil), // 119: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData + (*ClientMeta_AdditionalMevRelayValidatorRegistrationData)(nil), // 120: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData + (*ClientMeta_AdditionalNodeRecordConsensusData)(nil), // 121: xatu.ClientMeta.AdditionalNodeRecordConsensusData + (*ClientMeta_AdditionalConsensusEngineAPINewPayloadData)(nil), // 122: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData + (*ClientMeta_AdditionalConsensusEngineAPIGetBlobsData)(nil), // 123: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData + (*ClientMeta_AdditionalEthV1BeaconBlobData)(nil), // 124: xatu.ClientMeta.AdditionalEthV1BeaconBlobData + (*ClientMeta_Ethereum_Network)(nil), // 125: xatu.ClientMeta.Ethereum.Network + (*ClientMeta_Ethereum_Execution)(nil), // 126: xatu.ClientMeta.Ethereum.Execution + (*ClientMeta_Ethereum_Consensus)(nil), // 127: xatu.ClientMeta.Ethereum.Consensus + (*ServerMeta_Event)(nil), // 128: xatu.ServerMeta.Event + (*ServerMeta_Geo)(nil), // 129: xatu.ServerMeta.Geo + (*ServerMeta_Client)(nil), // 130: xatu.ServerMeta.Client + (*ServerMeta_Peer)(nil), // 131: xatu.ServerMeta.Peer + (*ServerMeta_AdditionalBeaconP2PAttestationData)(nil), // 132: xatu.ServerMeta.AdditionalBeaconP2PAttestationData + (*ServerMeta_AdditionalLibp2PTraceConnectedData)(nil), // 133: xatu.ServerMeta.AdditionalLibp2PTraceConnectedData + (*ServerMeta_AdditionalLibp2PTraceDisconnectedData)(nil), // 134: xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData + (*ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData)(nil), // 135: xatu.ServerMeta.AdditionalLibP2PTraceSyntheticHeartbeatData + (*ServerMeta_AdditionalLibp2PTraceIdentifyData)(nil), // 136: xatu.ServerMeta.AdditionalLibp2PTraceIdentifyData + (*ServerMeta_AdditionalNodeRecordConsensusData)(nil), // 137: xatu.ServerMeta.AdditionalNodeRecordConsensusData + (*ServerMeta_AdditionalNodeRecordExecutionData)(nil), // 138: xatu.ServerMeta.AdditionalNodeRecordExecutionData + (*ExecutionBlockMetrics_StateReads)(nil), // 139: xatu.ExecutionBlockMetrics.StateReads + (*ExecutionBlockMetrics_StateWrites)(nil), // 140: xatu.ExecutionBlockMetrics.StateWrites + (*ExecutionBlockMetrics_CacheEntry)(nil), // 141: xatu.ExecutionBlockMetrics.CacheEntry + (*ExecutionBlockMetrics_CodeCacheEntry)(nil), // 142: xatu.ExecutionBlockMetrics.CodeCacheEntry + (*wrapperspb.UInt64Value)(nil), // 143: google.protobuf.UInt64Value + (*timestamppb.Timestamp)(nil), // 144: google.protobuf.Timestamp + (*v1.ForkChoice)(nil), // 145: xatu.eth.v1.ForkChoice + (*v1.EventChainReorg)(nil), // 146: xatu.eth.v1.EventChainReorg + (*v1.ForkChoiceV2)(nil), // 147: xatu.eth.v1.ForkChoiceV2 + (*v1.EventChainReorgV2)(nil), // 148: xatu.eth.v1.EventChainReorgV2 + (*v1.Validator)(nil), // 149: xatu.eth.v1.Validator + (*v1.SyncCommittee)(nil), // 150: xatu.eth.v1.SyncCommittee + (*wrapperspb.UInt32Value)(nil), // 151: google.protobuf.UInt32Value + (ModuleName)(0), // 152: xatu.ModuleName + (*wrapperspb.DoubleValue)(nil), // 153: google.protobuf.DoubleValue + (*v1.Attestation)(nil), // 154: xatu.eth.v1.Attestation + (*v1.EventBlock)(nil), // 155: xatu.eth.v1.EventBlock + (*v1.EventFinalizedCheckpoint)(nil), // 156: xatu.eth.v1.EventFinalizedCheckpoint + (*v1.EventHead)(nil), // 157: xatu.eth.v1.EventHead + (*v1.EventVoluntaryExit)(nil), // 158: xatu.eth.v1.EventVoluntaryExit + (*v1.EventContributionAndProof)(nil), // 159: xatu.eth.v1.EventContributionAndProof + (*v2.EventBlock)(nil), // 160: xatu.eth.v2.EventBlock + (*v1.Committee)(nil), // 161: xatu.eth.v1.Committee + (*v1.AttestationDataV2)(nil), // 162: xatu.eth.v1.AttestationDataV2 + (*v1.AttestationV2)(nil), // 163: xatu.eth.v1.AttestationV2 + (*v1.EventBlockV2)(nil), // 164: xatu.eth.v1.EventBlockV2 + (*v1.EventFinalizedCheckpointV2)(nil), // 165: xatu.eth.v1.EventFinalizedCheckpointV2 + (*v1.EventHeadV2)(nil), // 166: xatu.eth.v1.EventHeadV2 + (*v1.EventVoluntaryExitV2)(nil), // 167: xatu.eth.v1.EventVoluntaryExitV2 + (*v1.EventContributionAndProofV2)(nil), // 168: xatu.eth.v1.EventContributionAndProofV2 + (*v2.EventBlockV2)(nil), // 169: xatu.eth.v2.EventBlockV2 + (*v1.AttesterSlashingV2)(nil), // 170: xatu.eth.v1.AttesterSlashingV2 + (*v1.ProposerSlashingV2)(nil), // 171: xatu.eth.v1.ProposerSlashingV2 + (*v1.SignedVoluntaryExitV2)(nil), // 172: xatu.eth.v1.SignedVoluntaryExitV2 + (*v1.DepositV2)(nil), // 173: xatu.eth.v1.DepositV2 + (*v2.SignedBLSToExecutionChangeV2)(nil), // 174: xatu.eth.v2.SignedBLSToExecutionChangeV2 + (*v1.Transaction)(nil), // 175: xatu.eth.v1.Transaction + (*v1.WithdrawalV2)(nil), // 176: xatu.eth.v1.WithdrawalV2 + (*v1.EventBlobSidecar)(nil), // 177: xatu.eth.v1.EventBlobSidecar + (*v1.BlobSidecar)(nil), // 178: xatu.eth.v1.BlobSidecar + (*v1.ProposerDuty)(nil), // 179: xatu.eth.v1.ProposerDuty + (*v1.ElaboratedAttestation)(nil), // 180: xatu.eth.v1.ElaboratedAttestation + (*libp2p.AddPeer)(nil), // 181: xatu.libp2p.AddPeer + (*libp2p.RemovePeer)(nil), // 182: xatu.libp2p.RemovePeer + (*libp2p.RecvRPC)(nil), // 183: xatu.libp2p.RecvRPC + (*libp2p.SendRPC)(nil), // 184: xatu.libp2p.SendRPC + (*libp2p.Join)(nil), // 185: xatu.libp2p.Join + (*libp2p.Connected)(nil), // 186: xatu.libp2p.Connected + (*libp2p.Disconnected)(nil), // 187: xatu.libp2p.Disconnected + (*libp2p.HandleMetadata)(nil), // 188: xatu.libp2p.HandleMetadata + (*libp2p.HandleStatus)(nil), // 189: xatu.libp2p.HandleStatus + (*gossipsub.BeaconBlock)(nil), // 190: xatu.libp2p.gossipsub.eth.BeaconBlock + (*gossipsub.BlobSidecar)(nil), // 191: xatu.libp2p.gossipsub.eth.BlobSidecar + (*mevrelay.BidTrace)(nil), // 192: xatu.mevrelay.BidTrace + (*mevrelay.ProposerPayloadDelivered)(nil), // 193: xatu.mevrelay.ProposerPayloadDelivered + (*mevrelay.ValidatorRegistration)(nil), // 194: xatu.mevrelay.ValidatorRegistration + (*v1.EventBlockGossip)(nil), // 195: xatu.eth.v1.EventBlockGossip + (*libp2p.DropRPC)(nil), // 196: xatu.libp2p.DropRPC + (*libp2p.Leave)(nil), // 197: xatu.libp2p.Leave + (*libp2p.Graft)(nil), // 198: xatu.libp2p.Graft + (*libp2p.Prune)(nil), // 199: xatu.libp2p.Prune + (*libp2p.DuplicateMessage)(nil), // 200: xatu.libp2p.DuplicateMessage + (*libp2p.DeliverMessage)(nil), // 201: xatu.libp2p.DeliverMessage + (*libp2p.PublishMessage)(nil), // 202: xatu.libp2p.PublishMessage + (*libp2p.RejectMessage)(nil), // 203: xatu.libp2p.RejectMessage + (*libp2p.ControlIHaveMetaItem)(nil), // 204: xatu.libp2p.ControlIHaveMetaItem + (*libp2p.ControlIWantMetaItem)(nil), // 205: xatu.libp2p.ControlIWantMetaItem + (*libp2p.ControlIDontWantMetaItem)(nil), // 206: xatu.libp2p.ControlIDontWantMetaItem + (*libp2p.ControlGraftMetaItem)(nil), // 207: xatu.libp2p.ControlGraftMetaItem + (*libp2p.ControlPruneMetaItem)(nil), // 208: xatu.libp2p.ControlPruneMetaItem + (*libp2p.SubMetaItem)(nil), // 209: xatu.libp2p.SubMetaItem + (*libp2p.MessageMetaItem)(nil), // 210: xatu.libp2p.MessageMetaItem + (*noderecord.Consensus)(nil), // 211: xatu.noderecord.Consensus + (*noderecord.Execution)(nil), // 212: xatu.noderecord.Execution + (*v1.SignedAggregateAttestationAndProofV2)(nil), // 213: xatu.eth.v1.SignedAggregateAttestationAndProofV2 + (*v1.EventDataColumnSidecar)(nil), // 214: xatu.eth.v1.EventDataColumnSidecar + (*gossipsub.DataColumnSidecar)(nil), // 215: xatu.libp2p.gossipsub.eth.DataColumnSidecar + (*libp2p.SyntheticHeartbeat)(nil), // 216: xatu.libp2p.SyntheticHeartbeat + (*libp2p.Identify)(nil), // 217: xatu.libp2p.Identify + (*libp2p.DataColumnCustodyProbe)(nil), // 218: xatu.libp2p.DataColumnCustodyProbe + (*v1.Blob)(nil), // 219: xatu.eth.v1.Blob + (*v1.BlockAccessListChange)(nil), // 220: xatu.eth.v1.BlockAccessListChange + (*libp2p.Peer)(nil), // 221: xatu.libp2p.Peer + (*wrapperspb.BoolValue)(nil), // 222: google.protobuf.BoolValue + (*libp2p.TraceEventMetadata)(nil), // 223: xatu.libp2p.TraceEventMetadata + (*wrapperspb.StringValue)(nil), // 224: google.protobuf.StringValue + (*mevrelay.Relay)(nil), // 225: xatu.mevrelay.Relay + (*wrapperspb.Int64Value)(nil), // 226: google.protobuf.Int64Value } var file_pkg_proto_xatu_event_ingester_proto_depIdxs = []int32{ 29, // 0: xatu.CreateEventsRequest.events:type_name -> xatu.DecoratedEvent - 142, // 1: xatu.CreateEventsResponse.events_ingested:type_name -> google.protobuf.UInt64Value - 143, // 2: xatu.Epoch.start_date_time:type_name -> google.protobuf.Timestamp - 142, // 3: xatu.EpochV2.number:type_name -> google.protobuf.UInt64Value - 143, // 4: xatu.EpochV2.start_date_time:type_name -> google.protobuf.Timestamp - 143, // 5: xatu.Slot.start_date_time:type_name -> google.protobuf.Timestamp - 142, // 6: xatu.SlotV2.number:type_name -> google.protobuf.UInt64Value - 143, // 7: xatu.SlotV2.start_date_time:type_name -> google.protobuf.Timestamp - 142, // 8: xatu.PropagationV2.slot_start_diff:type_name -> google.protobuf.UInt64Value - 142, // 9: xatu.AttestingValidatorV2.committee_index:type_name -> google.protobuf.UInt64Value - 142, // 10: xatu.AttestingValidatorV2.index:type_name -> google.protobuf.UInt64Value - 144, // 11: xatu.DebugForkChoiceReorg.before:type_name -> xatu.eth.v1.ForkChoice - 144, // 12: xatu.DebugForkChoiceReorg.after:type_name -> xatu.eth.v1.ForkChoice - 145, // 13: xatu.DebugForkChoiceReorg.event:type_name -> xatu.eth.v1.EventChainReorg - 146, // 14: xatu.DebugForkChoiceReorgV2.before:type_name -> xatu.eth.v1.ForkChoiceV2 - 146, // 15: xatu.DebugForkChoiceReorgV2.after:type_name -> xatu.eth.v1.ForkChoiceV2 - 147, // 16: xatu.DebugForkChoiceReorgV2.event:type_name -> xatu.eth.v1.EventChainReorgV2 - 148, // 17: xatu.Validators.validators:type_name -> xatu.eth.v1.Validator - 149, // 18: xatu.SyncCommitteeData.sync_committee:type_name -> xatu.eth.v1.SyncCommittee - 142, // 19: xatu.SyncAggregateData.validators_participated:type_name -> google.protobuf.UInt64Value - 142, // 20: xatu.SyncAggregateData.validators_missed:type_name -> google.protobuf.UInt64Value - 142, // 21: xatu.SyncAggregateData.participation_count:type_name -> google.protobuf.UInt64Value + 143, // 1: xatu.CreateEventsResponse.events_ingested:type_name -> google.protobuf.UInt64Value + 144, // 2: xatu.Epoch.start_date_time:type_name -> google.protobuf.Timestamp + 143, // 3: xatu.EpochV2.number:type_name -> google.protobuf.UInt64Value + 144, // 4: xatu.EpochV2.start_date_time:type_name -> google.protobuf.Timestamp + 144, // 5: xatu.Slot.start_date_time:type_name -> google.protobuf.Timestamp + 143, // 6: xatu.SlotV2.number:type_name -> google.protobuf.UInt64Value + 144, // 7: xatu.SlotV2.start_date_time:type_name -> google.protobuf.Timestamp + 143, // 8: xatu.PropagationV2.slot_start_diff:type_name -> google.protobuf.UInt64Value + 143, // 9: xatu.AttestingValidatorV2.committee_index:type_name -> google.protobuf.UInt64Value + 143, // 10: xatu.AttestingValidatorV2.index:type_name -> google.protobuf.UInt64Value + 145, // 11: xatu.DebugForkChoiceReorg.before:type_name -> xatu.eth.v1.ForkChoice + 145, // 12: xatu.DebugForkChoiceReorg.after:type_name -> xatu.eth.v1.ForkChoice + 146, // 13: xatu.DebugForkChoiceReorg.event:type_name -> xatu.eth.v1.EventChainReorg + 147, // 14: xatu.DebugForkChoiceReorgV2.before:type_name -> xatu.eth.v1.ForkChoiceV2 + 147, // 15: xatu.DebugForkChoiceReorgV2.after:type_name -> xatu.eth.v1.ForkChoiceV2 + 148, // 16: xatu.DebugForkChoiceReorgV2.event:type_name -> xatu.eth.v1.EventChainReorgV2 + 149, // 17: xatu.Validators.validators:type_name -> xatu.eth.v1.Validator + 150, // 18: xatu.SyncCommitteeData.sync_committee:type_name -> xatu.eth.v1.SyncCommittee + 143, // 19: xatu.SyncAggregateData.validators_participated:type_name -> google.protobuf.UInt64Value + 143, // 20: xatu.SyncAggregateData.validators_missed:type_name -> google.protobuf.UInt64Value + 143, // 21: xatu.SyncAggregateData.participation_count:type_name -> google.protobuf.UInt64Value 5, // 22: xatu.BlockIdentifier.epoch:type_name -> xatu.EpochV2 7, // 23: xatu.BlockIdentifier.slot:type_name -> xatu.SlotV2 - 143, // 24: xatu.ConsensusEngineAPINewPayload.requested_at:type_name -> google.protobuf.Timestamp - 142, // 25: xatu.ConsensusEngineAPINewPayload.duration_ms:type_name -> google.protobuf.UInt64Value - 142, // 26: xatu.ConsensusEngineAPINewPayload.slot:type_name -> google.protobuf.UInt64Value - 142, // 27: xatu.ConsensusEngineAPINewPayload.proposer_index:type_name -> google.protobuf.UInt64Value - 142, // 28: xatu.ConsensusEngineAPINewPayload.block_number:type_name -> google.protobuf.UInt64Value - 142, // 29: xatu.ConsensusEngineAPINewPayload.gas_used:type_name -> google.protobuf.UInt64Value - 142, // 30: xatu.ConsensusEngineAPINewPayload.gas_limit:type_name -> google.protobuf.UInt64Value - 150, // 31: xatu.ConsensusEngineAPINewPayload.tx_count:type_name -> google.protobuf.UInt32Value - 150, // 32: xatu.ConsensusEngineAPINewPayload.blob_count:type_name -> google.protobuf.UInt32Value - 143, // 33: xatu.ConsensusEngineAPIGetBlobs.requested_at:type_name -> google.protobuf.Timestamp - 142, // 34: xatu.ConsensusEngineAPIGetBlobs.duration_ms:type_name -> google.protobuf.UInt64Value - 142, // 35: xatu.ConsensusEngineAPIGetBlobs.slot:type_name -> google.protobuf.UInt64Value - 150, // 36: xatu.ConsensusEngineAPIGetBlobs.requested_count:type_name -> google.protobuf.UInt32Value - 150, // 37: xatu.ConsensusEngineAPIGetBlobs.returned_count:type_name -> google.protobuf.UInt32Value + 144, // 24: xatu.ConsensusEngineAPINewPayload.requested_at:type_name -> google.protobuf.Timestamp + 143, // 25: xatu.ConsensusEngineAPINewPayload.duration_ms:type_name -> google.protobuf.UInt64Value + 143, // 26: xatu.ConsensusEngineAPINewPayload.slot:type_name -> google.protobuf.UInt64Value + 143, // 27: xatu.ConsensusEngineAPINewPayload.proposer_index:type_name -> google.protobuf.UInt64Value + 143, // 28: xatu.ConsensusEngineAPINewPayload.block_number:type_name -> google.protobuf.UInt64Value + 143, // 29: xatu.ConsensusEngineAPINewPayload.gas_used:type_name -> google.protobuf.UInt64Value + 143, // 30: xatu.ConsensusEngineAPINewPayload.gas_limit:type_name -> google.protobuf.UInt64Value + 151, // 31: xatu.ConsensusEngineAPINewPayload.tx_count:type_name -> google.protobuf.UInt32Value + 151, // 32: xatu.ConsensusEngineAPINewPayload.blob_count:type_name -> google.protobuf.UInt32Value + 144, // 33: xatu.ConsensusEngineAPIGetBlobs.requested_at:type_name -> google.protobuf.Timestamp + 143, // 34: xatu.ConsensusEngineAPIGetBlobs.duration_ms:type_name -> google.protobuf.UInt64Value + 143, // 35: xatu.ConsensusEngineAPIGetBlobs.slot:type_name -> google.protobuf.UInt64Value + 151, // 36: xatu.ConsensusEngineAPIGetBlobs.requested_count:type_name -> google.protobuf.UInt32Value + 151, // 37: xatu.ConsensusEngineAPIGetBlobs.returned_count:type_name -> google.protobuf.UInt32Value 0, // 38: xatu.ExecutionEngineNewPayload.source:type_name -> xatu.EngineSource - 143, // 39: xatu.ExecutionEngineNewPayload.requested_at:type_name -> google.protobuf.Timestamp - 142, // 40: xatu.ExecutionEngineNewPayload.duration_ms:type_name -> google.protobuf.UInt64Value - 142, // 41: xatu.ExecutionEngineNewPayload.block_number:type_name -> google.protobuf.UInt64Value - 142, // 42: xatu.ExecutionEngineNewPayload.gas_used:type_name -> google.protobuf.UInt64Value - 142, // 43: xatu.ExecutionEngineNewPayload.gas_limit:type_name -> google.protobuf.UInt64Value - 150, // 44: xatu.ExecutionEngineNewPayload.tx_count:type_name -> google.protobuf.UInt32Value - 150, // 45: xatu.ExecutionEngineNewPayload.blob_count:type_name -> google.protobuf.UInt32Value + 144, // 39: xatu.ExecutionEngineNewPayload.requested_at:type_name -> google.protobuf.Timestamp + 143, // 40: xatu.ExecutionEngineNewPayload.duration_ms:type_name -> google.protobuf.UInt64Value + 143, // 41: xatu.ExecutionEngineNewPayload.block_number:type_name -> google.protobuf.UInt64Value + 143, // 42: xatu.ExecutionEngineNewPayload.gas_used:type_name -> google.protobuf.UInt64Value + 143, // 43: xatu.ExecutionEngineNewPayload.gas_limit:type_name -> google.protobuf.UInt64Value + 151, // 44: xatu.ExecutionEngineNewPayload.tx_count:type_name -> google.protobuf.UInt32Value + 151, // 45: xatu.ExecutionEngineNewPayload.blob_count:type_name -> google.protobuf.UInt32Value 0, // 46: xatu.ExecutionEngineGetBlobs.source:type_name -> xatu.EngineSource - 143, // 47: xatu.ExecutionEngineGetBlobs.requested_at:type_name -> google.protobuf.Timestamp - 142, // 48: xatu.ExecutionEngineGetBlobs.duration_ms:type_name -> google.protobuf.UInt64Value - 150, // 49: xatu.ExecutionEngineGetBlobs.requested_count:type_name -> google.protobuf.UInt32Value - 150, // 50: xatu.ExecutionEngineGetBlobs.returned_count:type_name -> google.protobuf.UInt32Value - 150, // 51: xatu.ExecutionEngineGetBlobs.returned_blob_indexes:type_name -> google.protobuf.UInt32Value + 144, // 47: xatu.ExecutionEngineGetBlobs.requested_at:type_name -> google.protobuf.Timestamp + 143, // 48: xatu.ExecutionEngineGetBlobs.duration_ms:type_name -> google.protobuf.UInt64Value + 151, // 49: xatu.ExecutionEngineGetBlobs.requested_count:type_name -> google.protobuf.UInt32Value + 151, // 50: xatu.ExecutionEngineGetBlobs.returned_count:type_name -> google.protobuf.UInt32Value + 151, // 51: xatu.ExecutionEngineGetBlobs.returned_blob_indexes:type_name -> google.protobuf.UInt32Value 30, // 52: xatu.ClientMeta.ethereum:type_name -> xatu.ClientMeta.Ethereum 31, // 53: xatu.ClientMeta.labels:type_name -> xatu.ClientMeta.LabelsEntry 36, // 54: xatu.ClientMeta.eth_v1_events_attestation:type_name -> xatu.ClientMeta.AdditionalEthV1EventsAttestationData @@ -16523,7 +16637,7 @@ var file_pkg_proto_xatu_event_ingester_proto_depIdxs = []int32{ 55, // 63: xatu.ClientMeta.eth_v1_debug_fork_choice:type_name -> xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData 57, // 64: xatu.ClientMeta.eth_v1_debug_fork_choice_reorg:type_name -> xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData 59, // 65: xatu.ClientMeta.eth_v1_beacon_committee:type_name -> xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData - 74, // 66: xatu.ClientMeta.eth_v1_validator_attestation_data:type_name -> xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData + 75, // 66: xatu.ClientMeta.eth_v1_validator_attestation_data:type_name -> xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData 37, // 67: xatu.ClientMeta.eth_v1_events_attestation_v2:type_name -> xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data 39, // 68: xatu.ClientMeta.eth_v1_events_head_v2:type_name -> xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data 41, // 69: xatu.ClientMeta.eth_v1_events_block_v2:type_name -> xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data @@ -16542,457 +16656,460 @@ var file_pkg_proto_xatu_event_ingester_proto_depIdxs = []int32{ 70, // 82: xatu.ClientMeta.eth_v2_beacon_block_bls_to_execution_change:type_name -> xatu.ClientMeta.AdditionalEthV2BeaconBlockBLSToExecutionChangeData 71, // 83: xatu.ClientMeta.eth_v2_beacon_block_execution_transaction:type_name -> xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData 72, // 84: xatu.ClientMeta.eth_v2_beacon_block_withdrawal:type_name -> xatu.ClientMeta.AdditionalEthV2BeaconBlockWithdrawalData - 75, // 85: xatu.ClientMeta.eth_v1_events_blob_sidecar:type_name -> xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData - 77, // 86: xatu.ClientMeta.eth_v1_beacon_blob_sidecar:type_name -> xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData - 78, // 87: xatu.ClientMeta.beacon_p2p_attestation:type_name -> xatu.ClientMeta.AdditionalBeaconP2PAttestationData - 79, // 88: xatu.ClientMeta.eth_v1_proposer_duty:type_name -> xatu.ClientMeta.AdditionalEthV1ProposerDutyData - 80, // 89: xatu.ClientMeta.eth_v2_beacon_block_elaborated_attestation:type_name -> xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData - 81, // 90: xatu.ClientMeta.libp2p_trace_add_peer:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData - 82, // 91: xatu.ClientMeta.libp2p_trace_remove_peer:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData - 83, // 92: xatu.ClientMeta.libp2p_trace_recv_rpc:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData - 84, // 93: xatu.ClientMeta.libp2p_trace_send_rpc:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData - 91, // 94: xatu.ClientMeta.libp2p_trace_join:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceJoinData - 99, // 95: xatu.ClientMeta.libp2p_trace_connected:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceConnectedData - 100, // 96: xatu.ClientMeta.libp2p_trace_disconnected:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData - 102, // 97: xatu.ClientMeta.libp2p_trace_handle_metadata:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData - 103, // 98: xatu.ClientMeta.libp2p_trace_handle_status:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData - 108, // 99: xatu.ClientMeta.libp2p_trace_gossipsub_beacon_block:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData - 111, // 100: xatu.ClientMeta.libp2p_trace_gossipsub_beacon_attestation:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData - 113, // 101: xatu.ClientMeta.libp2p_trace_gossipsub_blob_sidecar:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData - 115, // 102: xatu.ClientMeta.eth_v1_validators:type_name -> xatu.ClientMeta.AdditionalEthV1ValidatorsData - 116, // 103: xatu.ClientMeta.mev_relay_bid_trace_builder_block_submission:type_name -> xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData - 117, // 104: xatu.ClientMeta.mev_relay_payload_delivered:type_name -> xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData - 118, // 105: xatu.ClientMeta.eth_v3_validator_block:type_name -> xatu.ClientMeta.AdditionalEthV3ValidatorBlockData - 119, // 106: xatu.ClientMeta.mev_relay_validator_registration:type_name -> xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData + 76, // 85: xatu.ClientMeta.eth_v1_events_blob_sidecar:type_name -> xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData + 78, // 86: xatu.ClientMeta.eth_v1_beacon_blob_sidecar:type_name -> xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData + 79, // 87: xatu.ClientMeta.beacon_p2p_attestation:type_name -> xatu.ClientMeta.AdditionalBeaconP2PAttestationData + 80, // 88: xatu.ClientMeta.eth_v1_proposer_duty:type_name -> xatu.ClientMeta.AdditionalEthV1ProposerDutyData + 81, // 89: xatu.ClientMeta.eth_v2_beacon_block_elaborated_attestation:type_name -> xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData + 82, // 90: xatu.ClientMeta.libp2p_trace_add_peer:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData + 83, // 91: xatu.ClientMeta.libp2p_trace_remove_peer:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData + 84, // 92: xatu.ClientMeta.libp2p_trace_recv_rpc:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData + 85, // 93: xatu.ClientMeta.libp2p_trace_send_rpc:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData + 92, // 94: xatu.ClientMeta.libp2p_trace_join:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceJoinData + 100, // 95: xatu.ClientMeta.libp2p_trace_connected:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceConnectedData + 101, // 96: xatu.ClientMeta.libp2p_trace_disconnected:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData + 103, // 97: xatu.ClientMeta.libp2p_trace_handle_metadata:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData + 104, // 98: xatu.ClientMeta.libp2p_trace_handle_status:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData + 109, // 99: xatu.ClientMeta.libp2p_trace_gossipsub_beacon_block:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData + 112, // 100: xatu.ClientMeta.libp2p_trace_gossipsub_beacon_attestation:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData + 114, // 101: xatu.ClientMeta.libp2p_trace_gossipsub_blob_sidecar:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData + 116, // 102: xatu.ClientMeta.eth_v1_validators:type_name -> xatu.ClientMeta.AdditionalEthV1ValidatorsData + 117, // 103: xatu.ClientMeta.mev_relay_bid_trace_builder_block_submission:type_name -> xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData + 118, // 104: xatu.ClientMeta.mev_relay_payload_delivered:type_name -> xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData + 119, // 105: xatu.ClientMeta.eth_v3_validator_block:type_name -> xatu.ClientMeta.AdditionalEthV3ValidatorBlockData + 120, // 106: xatu.ClientMeta.mev_relay_validator_registration:type_name -> xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData 42, // 107: xatu.ClientMeta.eth_v1_events_block_gossip:type_name -> xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData - 85, // 108: xatu.ClientMeta.libp2p_trace_drop_rpc:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceDropRPCData - 92, // 109: xatu.ClientMeta.libp2p_trace_leave:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceLeaveData - 93, // 110: xatu.ClientMeta.libp2p_trace_graft:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGraftData - 94, // 111: xatu.ClientMeta.libp2p_trace_prune:type_name -> xatu.ClientMeta.AdditionalLibP2PTracePruneData - 95, // 112: xatu.ClientMeta.libp2p_trace_duplicate_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceDuplicateMessageData - 96, // 113: xatu.ClientMeta.libp2p_trace_deliver_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceDeliverMessageData - 97, // 114: xatu.ClientMeta.libp2p_trace_publish_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTracePublishMessageData - 98, // 115: xatu.ClientMeta.libp2p_trace_reject_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRejectMessageData - 86, // 116: xatu.ClientMeta.libp2p_trace_rpc_meta_control_ihave:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIHaveData - 87, // 117: xatu.ClientMeta.libp2p_trace_rpc_meta_control_iwant:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIWantData - 88, // 118: xatu.ClientMeta.libp2p_trace_rpc_meta_control_idontwant:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIDontWantData - 89, // 119: xatu.ClientMeta.libp2p_trace_rpc_meta_control_graft:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlGraftData - 90, // 120: xatu.ClientMeta.libp2p_trace_rpc_meta_control_prune:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlPruneData - 106, // 121: xatu.ClientMeta.libp2p_trace_rpc_meta_subscription:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaSubscriptionData - 107, // 122: xatu.ClientMeta.libp2p_trace_rpc_meta_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaMessageData - 120, // 123: xatu.ClientMeta.node_record_consensus:type_name -> xatu.ClientMeta.AdditionalNodeRecordConsensusData - 112, // 124: xatu.ClientMeta.libp2p_trace_gossipsub_aggregate_and_proof:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData - 76, // 125: xatu.ClientMeta.eth_v1_events_data_column_sidecar:type_name -> xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData - 114, // 126: xatu.ClientMeta.libp2p_trace_gossipsub_data_column_sidecar:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData - 101, // 127: xatu.ClientMeta.libp2p_trace_synthetic_heartbeat:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceSyntheticHeartbeatData - 105, // 128: xatu.ClientMeta.libp2p_trace_rpc_data_column_custody_probe:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData - 121, // 129: xatu.ClientMeta.consensus_engine_api_new_payload:type_name -> xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData - 122, // 130: xatu.ClientMeta.consensus_engine_api_get_blobs:type_name -> xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData - 123, // 131: xatu.ClientMeta.eth_v1_beacon_blob:type_name -> xatu.ClientMeta.AdditionalEthV1BeaconBlobData + 86, // 108: xatu.ClientMeta.libp2p_trace_drop_rpc:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceDropRPCData + 93, // 109: xatu.ClientMeta.libp2p_trace_leave:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceLeaveData + 94, // 110: xatu.ClientMeta.libp2p_trace_graft:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGraftData + 95, // 111: xatu.ClientMeta.libp2p_trace_prune:type_name -> xatu.ClientMeta.AdditionalLibP2PTracePruneData + 96, // 112: xatu.ClientMeta.libp2p_trace_duplicate_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceDuplicateMessageData + 97, // 113: xatu.ClientMeta.libp2p_trace_deliver_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceDeliverMessageData + 98, // 114: xatu.ClientMeta.libp2p_trace_publish_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTracePublishMessageData + 99, // 115: xatu.ClientMeta.libp2p_trace_reject_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRejectMessageData + 87, // 116: xatu.ClientMeta.libp2p_trace_rpc_meta_control_ihave:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIHaveData + 88, // 117: xatu.ClientMeta.libp2p_trace_rpc_meta_control_iwant:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIWantData + 89, // 118: xatu.ClientMeta.libp2p_trace_rpc_meta_control_idontwant:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIDontWantData + 90, // 119: xatu.ClientMeta.libp2p_trace_rpc_meta_control_graft:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlGraftData + 91, // 120: xatu.ClientMeta.libp2p_trace_rpc_meta_control_prune:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlPruneData + 107, // 121: xatu.ClientMeta.libp2p_trace_rpc_meta_subscription:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaSubscriptionData + 108, // 122: xatu.ClientMeta.libp2p_trace_rpc_meta_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaMessageData + 121, // 123: xatu.ClientMeta.node_record_consensus:type_name -> xatu.ClientMeta.AdditionalNodeRecordConsensusData + 113, // 124: xatu.ClientMeta.libp2p_trace_gossipsub_aggregate_and_proof:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData + 77, // 125: xatu.ClientMeta.eth_v1_events_data_column_sidecar:type_name -> xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData + 115, // 126: xatu.ClientMeta.libp2p_trace_gossipsub_data_column_sidecar:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData + 102, // 127: xatu.ClientMeta.libp2p_trace_synthetic_heartbeat:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceSyntheticHeartbeatData + 106, // 128: xatu.ClientMeta.libp2p_trace_rpc_data_column_custody_probe:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData + 122, // 129: xatu.ClientMeta.consensus_engine_api_new_payload:type_name -> xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData + 123, // 130: xatu.ClientMeta.consensus_engine_api_get_blobs:type_name -> xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData + 124, // 131: xatu.ClientMeta.eth_v1_beacon_blob:type_name -> xatu.ClientMeta.AdditionalEthV1BeaconBlobData 60, // 132: xatu.ClientMeta.eth_v1_beacon_sync_committee:type_name -> xatu.ClientMeta.AdditionalEthV1BeaconSyncCommitteeData 61, // 133: xatu.ClientMeta.eth_v2_beacon_block_sync_aggregate:type_name -> xatu.ClientMeta.AdditionalEthV2BeaconBlockSyncAggregateData - 104, // 134: xatu.ClientMeta.libp2p_trace_identify:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceIdentifyData - 151, // 135: xatu.ClientMeta.module_name:type_name -> xatu.ModuleName - 127, // 136: xatu.ServerMeta.event:type_name -> xatu.ServerMeta.Event - 129, // 137: xatu.ServerMeta.client:type_name -> xatu.ServerMeta.Client - 131, // 138: xatu.ServerMeta.BEACON_P2P_ATTESTATION:type_name -> xatu.ServerMeta.AdditionalBeaconP2PAttestationData - 132, // 139: xatu.ServerMeta.LIBP2P_TRACE_CONNECTED:type_name -> xatu.ServerMeta.AdditionalLibp2PTraceConnectedData - 133, // 140: xatu.ServerMeta.LIBP2P_TRACE_DISCONNECTED:type_name -> xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData - 136, // 141: xatu.ServerMeta.NODE_RECORD_CONSENSUS:type_name -> xatu.ServerMeta.AdditionalNodeRecordConsensusData - 137, // 142: xatu.ServerMeta.NODE_RECORD_EXECUTION:type_name -> xatu.ServerMeta.AdditionalNodeRecordExecutionData - 134, // 143: xatu.ServerMeta.LIBP2P_TRACE_SYNTHETIC_HEARTBEAT:type_name -> xatu.ServerMeta.AdditionalLibP2PTraceSyntheticHeartbeatData - 135, // 144: xatu.ServerMeta.LIBP2P_TRACE_IDENTIFY:type_name -> xatu.ServerMeta.AdditionalLibp2PTraceIdentifyData - 24, // 145: xatu.Meta.client:type_name -> xatu.ClientMeta - 25, // 146: xatu.Meta.server:type_name -> xatu.ServerMeta - 1, // 147: xatu.Event.name:type_name -> xatu.Event.Name - 143, // 148: xatu.Event.date_time:type_name -> google.protobuf.Timestamp - 142, // 149: xatu.ExecutionBlockMetrics.block_number:type_name -> google.protobuf.UInt64Value - 142, // 150: xatu.ExecutionBlockMetrics.gas_used:type_name -> google.protobuf.UInt64Value - 150, // 151: xatu.ExecutionBlockMetrics.tx_count:type_name -> google.protobuf.UInt32Value - 152, // 152: xatu.ExecutionBlockMetrics.execution_ms:type_name -> google.protobuf.DoubleValue - 152, // 153: xatu.ExecutionBlockMetrics.state_read_ms:type_name -> google.protobuf.DoubleValue - 152, // 154: xatu.ExecutionBlockMetrics.state_hash_ms:type_name -> google.protobuf.DoubleValue - 152, // 155: xatu.ExecutionBlockMetrics.commit_ms:type_name -> google.protobuf.DoubleValue - 152, // 156: xatu.ExecutionBlockMetrics.total_ms:type_name -> google.protobuf.DoubleValue - 152, // 157: xatu.ExecutionBlockMetrics.mgas_per_sec:type_name -> google.protobuf.DoubleValue - 138, // 158: xatu.ExecutionBlockMetrics.state_reads:type_name -> xatu.ExecutionBlockMetrics.StateReads - 139, // 159: xatu.ExecutionBlockMetrics.state_writes:type_name -> xatu.ExecutionBlockMetrics.StateWrites - 140, // 160: xatu.ExecutionBlockMetrics.account_cache:type_name -> xatu.ExecutionBlockMetrics.CacheEntry - 140, // 161: xatu.ExecutionBlockMetrics.storage_cache:type_name -> xatu.ExecutionBlockMetrics.CacheEntry - 141, // 162: xatu.ExecutionBlockMetrics.code_cache:type_name -> xatu.ExecutionBlockMetrics.CodeCacheEntry - 27, // 163: xatu.DecoratedEvent.event:type_name -> xatu.Event - 26, // 164: xatu.DecoratedEvent.meta:type_name -> xatu.Meta - 153, // 165: xatu.DecoratedEvent.eth_v1_events_attestation:type_name -> xatu.eth.v1.Attestation - 154, // 166: xatu.DecoratedEvent.eth_v1_events_block:type_name -> xatu.eth.v1.EventBlock - 145, // 167: xatu.DecoratedEvent.eth_v1_events_chain_reorg:type_name -> xatu.eth.v1.EventChainReorg - 155, // 168: xatu.DecoratedEvent.eth_v1_events_finalized_checkpoint:type_name -> xatu.eth.v1.EventFinalizedCheckpoint - 156, // 169: xatu.DecoratedEvent.eth_v1_events_head:type_name -> xatu.eth.v1.EventHead - 157, // 170: xatu.DecoratedEvent.eth_v1_events_voluntary_exit:type_name -> xatu.eth.v1.EventVoluntaryExit - 158, // 171: xatu.DecoratedEvent.eth_v1_events_contribution_and_proof:type_name -> xatu.eth.v1.EventContributionAndProof - 159, // 172: xatu.DecoratedEvent.eth_v2_beacon_block:type_name -> xatu.eth.v2.EventBlock - 144, // 173: xatu.DecoratedEvent.eth_v1_fork_choice:type_name -> xatu.eth.v1.ForkChoice - 13, // 174: xatu.DecoratedEvent.eth_v1_fork_choice_reorg:type_name -> xatu.DebugForkChoiceReorg - 160, // 175: xatu.DecoratedEvent.eth_v1_beacon_committee:type_name -> xatu.eth.v1.Committee - 161, // 176: xatu.DecoratedEvent.eth_v1_validator_attestation_data:type_name -> xatu.eth.v1.AttestationDataV2 - 162, // 177: xatu.DecoratedEvent.eth_v1_events_attestation_v2:type_name -> xatu.eth.v1.AttestationV2 - 163, // 178: xatu.DecoratedEvent.eth_v1_events_block_v2:type_name -> xatu.eth.v1.EventBlockV2 - 147, // 179: xatu.DecoratedEvent.eth_v1_events_chain_reorg_v2:type_name -> xatu.eth.v1.EventChainReorgV2 - 164, // 180: xatu.DecoratedEvent.eth_v1_events_finalized_checkpoint_v2:type_name -> xatu.eth.v1.EventFinalizedCheckpointV2 - 165, // 181: xatu.DecoratedEvent.eth_v1_events_head_v2:type_name -> xatu.eth.v1.EventHeadV2 - 166, // 182: xatu.DecoratedEvent.eth_v1_events_voluntary_exit_v2:type_name -> xatu.eth.v1.EventVoluntaryExitV2 - 167, // 183: xatu.DecoratedEvent.eth_v1_events_contribution_and_proof_v2:type_name -> xatu.eth.v1.EventContributionAndProofV2 - 168, // 184: xatu.DecoratedEvent.eth_v2_beacon_block_v2:type_name -> xatu.eth.v2.EventBlockV2 - 146, // 185: xatu.DecoratedEvent.eth_v1_fork_choice_v2:type_name -> xatu.eth.v1.ForkChoiceV2 - 14, // 186: xatu.DecoratedEvent.eth_v1_fork_choice_reorg_v2:type_name -> xatu.DebugForkChoiceReorgV2 - 169, // 187: xatu.DecoratedEvent.eth_v2_beacon_block_attester_slashing:type_name -> xatu.eth.v1.AttesterSlashingV2 - 170, // 188: xatu.DecoratedEvent.eth_v2_beacon_block_proposer_slashing:type_name -> xatu.eth.v1.ProposerSlashingV2 - 171, // 189: xatu.DecoratedEvent.eth_v2_beacon_block_voluntary_exit:type_name -> xatu.eth.v1.SignedVoluntaryExitV2 - 172, // 190: xatu.DecoratedEvent.eth_v2_beacon_block_deposit:type_name -> xatu.eth.v1.DepositV2 - 173, // 191: xatu.DecoratedEvent.eth_v2_beacon_block_bls_to_execution_change:type_name -> xatu.eth.v2.SignedBLSToExecutionChangeV2 - 174, // 192: xatu.DecoratedEvent.eth_v2_beacon_block_execution_transaction:type_name -> xatu.eth.v1.Transaction - 175, // 193: xatu.DecoratedEvent.eth_v2_beacon_block_withdrawal:type_name -> xatu.eth.v1.WithdrawalV2 - 176, // 194: xatu.DecoratedEvent.eth_v1_events_blob_sidecar:type_name -> xatu.eth.v1.EventBlobSidecar - 177, // 195: xatu.DecoratedEvent.eth_v1_beacon_block_blob_sidecar:type_name -> xatu.eth.v1.BlobSidecar - 162, // 196: xatu.DecoratedEvent.beacon_p2p_attestation:type_name -> xatu.eth.v1.AttestationV2 - 178, // 197: xatu.DecoratedEvent.eth_v1_proposer_duty:type_name -> xatu.eth.v1.ProposerDuty - 179, // 198: xatu.DecoratedEvent.eth_v2_beacon_block_elaborated_attestation:type_name -> xatu.eth.v1.ElaboratedAttestation - 180, // 199: xatu.DecoratedEvent.libp2p_trace_add_peer:type_name -> xatu.libp2p.AddPeer - 181, // 200: xatu.DecoratedEvent.libp2p_trace_remove_peer:type_name -> xatu.libp2p.RemovePeer - 182, // 201: xatu.DecoratedEvent.libp2p_trace_recv_rpc:type_name -> xatu.libp2p.RecvRPC - 183, // 202: xatu.DecoratedEvent.libp2p_trace_send_rpc:type_name -> xatu.libp2p.SendRPC - 184, // 203: xatu.DecoratedEvent.libp2p_trace_join:type_name -> xatu.libp2p.Join - 185, // 204: xatu.DecoratedEvent.libp2p_trace_connected:type_name -> xatu.libp2p.Connected - 186, // 205: xatu.DecoratedEvent.libp2p_trace_disconnected:type_name -> xatu.libp2p.Disconnected - 187, // 206: xatu.DecoratedEvent.libp2p_trace_handle_metadata:type_name -> xatu.libp2p.HandleMetadata - 188, // 207: xatu.DecoratedEvent.libp2p_trace_handle_status:type_name -> xatu.libp2p.HandleStatus - 189, // 208: xatu.DecoratedEvent.libp2p_trace_gossipsub_beacon_block:type_name -> xatu.libp2p.gossipsub.eth.BeaconBlock - 153, // 209: xatu.DecoratedEvent.libp2p_trace_gossipsub_beacon_attestation:type_name -> xatu.eth.v1.Attestation - 190, // 210: xatu.DecoratedEvent.libp2p_trace_gossipsub_blob_sidecar:type_name -> xatu.libp2p.gossipsub.eth.BlobSidecar - 15, // 211: xatu.DecoratedEvent.eth_v1_validators:type_name -> xatu.Validators - 191, // 212: xatu.DecoratedEvent.mev_relay_bid_trace_builder_block_submission:type_name -> xatu.mevrelay.BidTrace - 192, // 213: xatu.DecoratedEvent.mev_relay_payload_delivered:type_name -> xatu.mevrelay.ProposerPayloadDelivered - 168, // 214: xatu.DecoratedEvent.eth_v3_validator_block:type_name -> xatu.eth.v2.EventBlockV2 - 193, // 215: xatu.DecoratedEvent.mev_relay_validator_registration:type_name -> xatu.mevrelay.ValidatorRegistration - 194, // 216: xatu.DecoratedEvent.eth_v1_events_block_gossip:type_name -> xatu.eth.v1.EventBlockGossip - 195, // 217: xatu.DecoratedEvent.libp2p_trace_drop_rpc:type_name -> xatu.libp2p.DropRPC - 196, // 218: xatu.DecoratedEvent.libp2p_trace_leave:type_name -> xatu.libp2p.Leave - 197, // 219: xatu.DecoratedEvent.libp2p_trace_graft:type_name -> xatu.libp2p.Graft - 198, // 220: xatu.DecoratedEvent.libp2p_trace_prune:type_name -> xatu.libp2p.Prune - 199, // 221: xatu.DecoratedEvent.libp2p_trace_duplicate_message:type_name -> xatu.libp2p.DuplicateMessage - 200, // 222: xatu.DecoratedEvent.libp2p_trace_deliver_message:type_name -> xatu.libp2p.DeliverMessage - 201, // 223: xatu.DecoratedEvent.libp2p_trace_publish_message:type_name -> xatu.libp2p.PublishMessage - 202, // 224: xatu.DecoratedEvent.libp2p_trace_reject_message:type_name -> xatu.libp2p.RejectMessage - 203, // 225: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_ihave:type_name -> xatu.libp2p.ControlIHaveMetaItem - 204, // 226: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_iwant:type_name -> xatu.libp2p.ControlIWantMetaItem - 205, // 227: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_idontwant:type_name -> xatu.libp2p.ControlIDontWantMetaItem - 206, // 228: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_graft:type_name -> xatu.libp2p.ControlGraftMetaItem - 207, // 229: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_prune:type_name -> xatu.libp2p.ControlPruneMetaItem - 208, // 230: xatu.DecoratedEvent.libp2p_trace_rpc_meta_subscription:type_name -> xatu.libp2p.SubMetaItem - 209, // 231: xatu.DecoratedEvent.libp2p_trace_rpc_meta_message:type_name -> xatu.libp2p.MessageMetaItem - 210, // 232: xatu.DecoratedEvent.node_record_consensus:type_name -> xatu.noderecord.Consensus - 211, // 233: xatu.DecoratedEvent.node_record_execution:type_name -> xatu.noderecord.Execution - 212, // 234: xatu.DecoratedEvent.libp2p_trace_gossipsub_aggregate_and_proof:type_name -> xatu.eth.v1.SignedAggregateAttestationAndProofV2 - 213, // 235: xatu.DecoratedEvent.eth_v1_events_data_column_sidecar:type_name -> xatu.eth.v1.EventDataColumnSidecar - 214, // 236: xatu.DecoratedEvent.libp2p_trace_gossipsub_data_column_sidecar:type_name -> xatu.libp2p.gossipsub.eth.DataColumnSidecar - 215, // 237: xatu.DecoratedEvent.libp2p_trace_synthetic_heartbeat:type_name -> xatu.libp2p.SyntheticHeartbeat - 216, // 238: xatu.DecoratedEvent.libp2p_trace_identify:type_name -> xatu.libp2p.Identify - 217, // 239: xatu.DecoratedEvent.libp2p_trace_rpc_data_column_custody_probe:type_name -> xatu.libp2p.DataColumnCustodyProbe - 19, // 240: xatu.DecoratedEvent.execution_state_size:type_name -> xatu.ExecutionStateSize - 20, // 241: xatu.DecoratedEvent.consensus_engine_api_new_payload:type_name -> xatu.ConsensusEngineAPINewPayload - 21, // 242: xatu.DecoratedEvent.consensus_engine_api_get_blobs:type_name -> xatu.ConsensusEngineAPIGetBlobs - 22, // 243: xatu.DecoratedEvent.execution_engine_new_payload:type_name -> xatu.ExecutionEngineNewPayload - 23, // 244: xatu.DecoratedEvent.execution_engine_get_blobs:type_name -> xatu.ExecutionEngineGetBlobs - 218, // 245: xatu.DecoratedEvent.eth_v1_beacon_blob:type_name -> xatu.eth.v1.Blob - 16, // 246: xatu.DecoratedEvent.eth_v1_beacon_sync_committee:type_name -> xatu.SyncCommitteeData - 17, // 247: xatu.DecoratedEvent.eth_v2_beacon_block_sync_aggregate:type_name -> xatu.SyncAggregateData - 28, // 248: xatu.DecoratedEvent.execution_block_metrics:type_name -> xatu.ExecutionBlockMetrics - 124, // 249: xatu.ClientMeta.Ethereum.network:type_name -> xatu.ClientMeta.Ethereum.Network - 125, // 250: xatu.ClientMeta.Ethereum.execution:type_name -> xatu.ClientMeta.Ethereum.Execution - 126, // 251: xatu.ClientMeta.Ethereum.consensus:type_name -> xatu.ClientMeta.Ethereum.Consensus - 4, // 252: xatu.ClientMeta.AdditionalEthV1AttestationSourceData.epoch:type_name -> xatu.Epoch - 5, // 253: xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data.epoch:type_name -> xatu.EpochV2 - 4, // 254: xatu.ClientMeta.AdditionalEthV1AttestationTargetData.epoch:type_name -> xatu.Epoch - 5, // 255: xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data.epoch:type_name -> xatu.EpochV2 - 32, // 256: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceData - 34, // 257: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetData - 6, // 258: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.slot:type_name -> xatu.Slot - 4, // 259: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.epoch:type_name -> xatu.Epoch - 9, // 260: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.propagation:type_name -> xatu.Propagation - 11, // 261: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.attesting_validator:type_name -> xatu.AttestingValidator - 33, // 262: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 35, // 263: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 7, // 264: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.slot:type_name -> xatu.SlotV2 - 5, // 265: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.epoch:type_name -> xatu.EpochV2 - 10, // 266: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.propagation:type_name -> xatu.PropagationV2 - 12, // 267: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.attesting_validator:type_name -> xatu.AttestingValidatorV2 - 4, // 268: xatu.ClientMeta.AdditionalEthV1EventsHeadData.epoch:type_name -> xatu.Epoch - 6, // 269: xatu.ClientMeta.AdditionalEthV1EventsHeadData.slot:type_name -> xatu.Slot - 9, // 270: xatu.ClientMeta.AdditionalEthV1EventsHeadData.propagation:type_name -> xatu.Propagation - 5, // 271: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.epoch:type_name -> xatu.EpochV2 - 7, // 272: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.slot:type_name -> xatu.SlotV2 - 10, // 273: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.propagation:type_name -> xatu.PropagationV2 - 4, // 274: xatu.ClientMeta.AdditionalEthV1EventsBlockData.epoch:type_name -> xatu.Epoch - 6, // 275: xatu.ClientMeta.AdditionalEthV1EventsBlockData.slot:type_name -> xatu.Slot - 9, // 276: xatu.ClientMeta.AdditionalEthV1EventsBlockData.propagation:type_name -> xatu.Propagation - 5, // 277: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.epoch:type_name -> xatu.EpochV2 - 7, // 278: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.slot:type_name -> xatu.SlotV2 - 10, // 279: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.propagation:type_name -> xatu.PropagationV2 - 5, // 280: xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData.epoch:type_name -> xatu.EpochV2 - 7, // 281: xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData.slot:type_name -> xatu.SlotV2 - 10, // 282: xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData.propagation:type_name -> xatu.PropagationV2 - 4, // 283: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitData.epoch:type_name -> xatu.Epoch - 5, // 284: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.epoch:type_name -> xatu.EpochV2 - 5, // 285: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 286: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.wallclock_slot:type_name -> xatu.SlotV2 - 4, // 287: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointData.epoch:type_name -> xatu.Epoch - 5, // 288: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointV2Data.epoch:type_name -> xatu.EpochV2 - 4, // 289: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.epoch:type_name -> xatu.Epoch - 6, // 290: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.slot:type_name -> xatu.Slot - 9, // 291: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.propagation:type_name -> xatu.Propagation - 5, // 292: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.epoch:type_name -> xatu.EpochV2 - 7, // 293: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.slot:type_name -> xatu.SlotV2 - 10, // 294: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.propagation:type_name -> xatu.PropagationV2 - 4, // 295: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.epoch:type_name -> xatu.Epoch - 6, // 296: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.slot:type_name -> xatu.Slot - 9, // 297: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.propagation:type_name -> xatu.Propagation - 5, // 298: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.epoch:type_name -> xatu.EpochV2 - 7, // 299: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.slot:type_name -> xatu.SlotV2 - 10, // 300: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.propagation:type_name -> xatu.PropagationV2 - 49, // 301: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofData.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData - 50, // 302: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofV2Data.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data - 4, // 303: xatu.ClientMeta.ForkChoiceSnapshot.request_epoch:type_name -> xatu.Epoch - 6, // 304: xatu.ClientMeta.ForkChoiceSnapshot.request_slot:type_name -> xatu.Slot - 143, // 305: xatu.ClientMeta.ForkChoiceSnapshot.timestamp:type_name -> google.protobuf.Timestamp - 5, // 306: xatu.ClientMeta.ForkChoiceSnapshotV2.request_epoch:type_name -> xatu.EpochV2 - 7, // 307: xatu.ClientMeta.ForkChoiceSnapshotV2.request_slot:type_name -> xatu.SlotV2 - 142, // 308: xatu.ClientMeta.ForkChoiceSnapshotV2.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value - 142, // 309: xatu.ClientMeta.ForkChoiceSnapshotV2.request_duration_ms:type_name -> google.protobuf.UInt64Value - 143, // 310: xatu.ClientMeta.ForkChoiceSnapshotV2.timestamp:type_name -> google.protobuf.Timestamp - 53, // 311: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshot - 54, // 312: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceV2Data.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 - 53, // 313: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshot - 53, // 314: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshot - 54, // 315: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 - 54, // 316: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 - 5, // 317: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.epoch:type_name -> xatu.EpochV2 - 7, // 318: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.slot:type_name -> xatu.SlotV2 - 5, // 319: xatu.ClientMeta.AdditionalEthV1BeaconSyncCommitteeData.epoch:type_name -> xatu.EpochV2 - 142, // 320: xatu.ClientMeta.AdditionalEthV1BeaconSyncCommitteeData.sync_committee_period:type_name -> google.protobuf.UInt64Value - 18, // 321: xatu.ClientMeta.AdditionalEthV2BeaconBlockSyncAggregateData.block:type_name -> xatu.BlockIdentifier - 142, // 322: xatu.ClientMeta.AdditionalEthV2BeaconBlockSyncAggregateData.sync_committee_period:type_name -> google.protobuf.UInt64Value - 142, // 323: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.nonce:type_name -> google.protobuf.UInt64Value - 142, // 324: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.gas:type_name -> google.protobuf.UInt64Value - 150, // 325: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.type:type_name -> google.protobuf.UInt32Value - 142, // 326: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.blob_gas:type_name -> google.protobuf.UInt64Value - 4, // 327: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.epoch:type_name -> xatu.Epoch - 6, // 328: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.slot:type_name -> xatu.Slot - 5, // 329: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.epoch:type_name -> xatu.EpochV2 - 7, // 330: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.slot:type_name -> xatu.SlotV2 - 142, // 331: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_count:type_name -> google.protobuf.UInt64Value - 142, // 332: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes:type_name -> google.protobuf.UInt64Value - 142, // 333: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes_compressed:type_name -> google.protobuf.UInt64Value - 142, // 334: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes:type_name -> google.protobuf.UInt64Value - 142, // 335: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes_compressed:type_name -> google.protobuf.UInt64Value - 18, // 336: xatu.ClientMeta.AdditionalEthV2BeaconBlockAttesterSlashingData.block:type_name -> xatu.BlockIdentifier - 18, // 337: xatu.ClientMeta.AdditionalEthV2BeaconBlockProposerSlashingData.block:type_name -> xatu.BlockIdentifier - 18, // 338: xatu.ClientMeta.AdditionalEthV2BeaconBlockVoluntaryExitData.block:type_name -> xatu.BlockIdentifier - 18, // 339: xatu.ClientMeta.AdditionalEthV2BeaconBlockDepositData.block:type_name -> xatu.BlockIdentifier - 18, // 340: xatu.ClientMeta.AdditionalEthV2BeaconBlockBLSToExecutionChangeData.block:type_name -> xatu.BlockIdentifier - 18, // 341: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.block:type_name -> xatu.BlockIdentifier - 142, // 342: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.position_in_block:type_name -> google.protobuf.UInt64Value - 18, // 343: xatu.ClientMeta.AdditionalEthV2BeaconBlockWithdrawalData.block:type_name -> xatu.BlockIdentifier - 142, // 344: xatu.ClientMeta.AttestationDataSnapshot.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value - 142, // 345: xatu.ClientMeta.AttestationDataSnapshot.request_duration_ms:type_name -> google.protobuf.UInt64Value - 143, // 346: xatu.ClientMeta.AttestationDataSnapshot.timestamp:type_name -> google.protobuf.Timestamp - 33, // 347: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 35, // 348: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 5, // 349: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.epoch:type_name -> xatu.EpochV2 - 7, // 350: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.slot:type_name -> xatu.SlotV2 - 73, // 351: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.Snapshot:type_name -> xatu.ClientMeta.AttestationDataSnapshot - 5, // 352: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 353: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.slot:type_name -> xatu.SlotV2 - 10, // 354: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.propagation:type_name -> xatu.PropagationV2 - 5, // 355: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 356: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.slot:type_name -> xatu.SlotV2 - 10, // 357: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.propagation:type_name -> xatu.PropagationV2 - 5, // 358: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 359: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.slot:type_name -> xatu.SlotV2 - 142, // 360: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_size:type_name -> google.protobuf.UInt64Value - 142, // 361: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_empty_size:type_name -> google.protobuf.UInt64Value - 33, // 362: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 35, // 363: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 7, // 364: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.slot:type_name -> xatu.SlotV2 - 5, // 365: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.epoch:type_name -> xatu.EpochV2 - 10, // 366: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.propagation:type_name -> xatu.PropagationV2 - 12, // 367: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 - 219, // 368: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.libp2p.Peer - 150, // 369: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.subnet:type_name -> google.protobuf.UInt32Value - 220, // 370: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.validated:type_name -> google.protobuf.BoolValue - 5, // 371: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.epoch:type_name -> xatu.EpochV2 - 7, // 372: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.slot:type_name -> xatu.SlotV2 - 18, // 373: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.block:type_name -> xatu.BlockIdentifier - 142, // 374: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.position_in_block:type_name -> google.protobuf.UInt64Value - 5, // 375: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.epoch:type_name -> xatu.EpochV2 - 7, // 376: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.slot:type_name -> xatu.SlotV2 - 33, // 377: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 35, // 378: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 221, // 379: xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 380: xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 381: xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 382: xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 383: xatu.ClientMeta.AdditionalLibP2PTraceDropRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 384: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIHaveData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 385: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIWantData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 386: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIDontWantData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 387: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlGraftData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 388: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlPruneData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 389: xatu.ClientMeta.AdditionalLibP2PTraceJoinData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 390: xatu.ClientMeta.AdditionalLibP2PTraceLeaveData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 391: xatu.ClientMeta.AdditionalLibP2PTraceGraftData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 392: xatu.ClientMeta.AdditionalLibP2PTracePruneData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 393: xatu.ClientMeta.AdditionalLibP2PTraceDuplicateMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 394: xatu.ClientMeta.AdditionalLibP2PTraceDeliverMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 395: xatu.ClientMeta.AdditionalLibP2PTracePublishMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 396: xatu.ClientMeta.AdditionalLibP2PTraceRejectMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 397: xatu.ClientMeta.AdditionalLibP2PTraceConnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 398: xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 399: xatu.ClientMeta.AdditionalLibP2PTraceSyntheticHeartbeatData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 400: xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 401: xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 402: xatu.ClientMeta.AdditionalLibP2PTraceIdentifyData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 403: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 5, // 404: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.epoch:type_name -> xatu.EpochV2 - 7, // 405: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.slot:type_name -> xatu.SlotV2 - 5, // 406: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 407: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.wallclock_slot:type_name -> xatu.SlotV2 - 221, // 408: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaSubscriptionData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 221, // 409: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 5, // 410: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.epoch:type_name -> xatu.EpochV2 - 7, // 411: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.slot:type_name -> xatu.SlotV2 - 5, // 412: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 413: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_slot:type_name -> xatu.SlotV2 - 10, // 414: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.propagation:type_name -> xatu.PropagationV2 - 221, // 415: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 222, // 416: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.topic:type_name -> google.protobuf.StringValue - 150, // 417: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_size:type_name -> google.protobuf.UInt32Value - 222, // 418: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_id:type_name -> google.protobuf.StringValue - 5, // 419: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData.epoch:type_name -> xatu.EpochV2 - 5, // 420: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData.epoch:type_name -> xatu.EpochV2 - 109, // 421: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.source:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData - 110, // 422: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.target:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData - 7, // 423: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.slot:type_name -> xatu.SlotV2 - 5, // 424: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.epoch:type_name -> xatu.EpochV2 - 10, // 425: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.propagation:type_name -> xatu.PropagationV2 - 12, // 426: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 - 5, // 427: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 428: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_slot:type_name -> xatu.SlotV2 - 221, // 429: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 222, // 430: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.topic:type_name -> google.protobuf.StringValue - 150, // 431: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_size:type_name -> google.protobuf.UInt32Value - 222, // 432: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_id:type_name -> google.protobuf.StringValue - 5, // 433: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.epoch:type_name -> xatu.EpochV2 - 7, // 434: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.slot:type_name -> xatu.SlotV2 - 5, // 435: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 436: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.wallclock_slot:type_name -> xatu.SlotV2 - 10, // 437: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.propagation:type_name -> xatu.PropagationV2 - 142, // 438: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.aggregator_index:type_name -> google.protobuf.UInt64Value - 221, // 439: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 222, // 440: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.topic:type_name -> google.protobuf.StringValue - 150, // 441: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.message_size:type_name -> google.protobuf.UInt32Value - 222, // 442: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.message_id:type_name -> google.protobuf.StringValue - 5, // 443: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 444: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.slot:type_name -> xatu.SlotV2 - 5, // 445: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 446: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_slot:type_name -> xatu.SlotV2 - 10, // 447: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.propagation:type_name -> xatu.PropagationV2 - 221, // 448: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 222, // 449: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.topic:type_name -> google.protobuf.StringValue - 150, // 450: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_size:type_name -> google.protobuf.UInt32Value - 222, // 451: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_id:type_name -> google.protobuf.StringValue - 5, // 452: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 453: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.slot:type_name -> xatu.SlotV2 - 5, // 454: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 455: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.wallclock_slot:type_name -> xatu.SlotV2 - 10, // 456: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.propagation:type_name -> xatu.PropagationV2 - 221, // 457: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 222, // 458: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.topic:type_name -> google.protobuf.StringValue - 150, // 459: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.message_size:type_name -> google.protobuf.UInt32Value - 222, // 460: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.message_id:type_name -> google.protobuf.StringValue - 5, // 461: xatu.ClientMeta.AdditionalEthV1ValidatorsData.epoch:type_name -> xatu.EpochV2 - 223, // 462: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.relay:type_name -> xatu.mevrelay.Relay - 7, // 463: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.slot:type_name -> xatu.SlotV2 - 7, // 464: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.wallclock_slot:type_name -> xatu.SlotV2 - 5, // 465: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.epoch:type_name -> xatu.EpochV2 - 5, // 466: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.wallclock_epoch:type_name -> xatu.EpochV2 - 142, // 467: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.requested_at_slot_time:type_name -> google.protobuf.UInt64Value - 142, // 468: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.response_at_slot_time:type_name -> google.protobuf.UInt64Value - 223, // 469: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.relay:type_name -> xatu.mevrelay.Relay - 7, // 470: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.slot:type_name -> xatu.SlotV2 - 7, // 471: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.wallclock_slot:type_name -> xatu.SlotV2 - 5, // 472: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.epoch:type_name -> xatu.EpochV2 - 5, // 473: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.wallclock_epoch:type_name -> xatu.EpochV2 - 142, // 474: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.requested_at_slot_time:type_name -> google.protobuf.UInt64Value - 142, // 475: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.response_at_slot_time:type_name -> google.protobuf.UInt64Value - 5, // 476: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.epoch:type_name -> xatu.EpochV2 - 7, // 477: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.slot:type_name -> xatu.SlotV2 - 142, // 478: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_count:type_name -> google.protobuf.UInt64Value - 142, // 479: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_total_bytes:type_name -> google.protobuf.UInt64Value - 142, // 480: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_total_bytes_compressed:type_name -> google.protobuf.UInt64Value - 142, // 481: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.total_bytes:type_name -> google.protobuf.UInt64Value - 142, // 482: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.total_bytes_compressed:type_name -> google.protobuf.UInt64Value - 142, // 483: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.request_duration_ms:type_name -> google.protobuf.UInt64Value - 143, // 484: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.requested_at:type_name -> google.protobuf.Timestamp - 223, // 485: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.relay:type_name -> xatu.mevrelay.Relay - 7, // 486: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.slot:type_name -> xatu.SlotV2 - 7, // 487: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.wallclock_slot:type_name -> xatu.SlotV2 - 5, // 488: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.epoch:type_name -> xatu.EpochV2 - 5, // 489: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.wallclock_epoch:type_name -> xatu.EpochV2 - 142, // 490: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.validator_index:type_name -> google.protobuf.UInt64Value - 5, // 491: xatu.ClientMeta.AdditionalNodeRecordConsensusData.finalized_epoch:type_name -> xatu.EpochV2 - 7, // 492: xatu.ClientMeta.AdditionalNodeRecordConsensusData.head_slot:type_name -> xatu.SlotV2 - 5, // 493: xatu.ClientMeta.AdditionalNodeRecordConsensusData.head_epoch:type_name -> xatu.EpochV2 - 5, // 494: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData.epoch:type_name -> xatu.EpochV2 - 7, // 495: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData.slot:type_name -> xatu.SlotV2 - 5, // 496: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData.epoch:type_name -> xatu.EpochV2 - 7, // 497: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData.slot:type_name -> xatu.SlotV2 - 5, // 498: xatu.ClientMeta.AdditionalEthV1BeaconBlobData.epoch:type_name -> xatu.EpochV2 - 7, // 499: xatu.ClientMeta.AdditionalEthV1BeaconBlobData.slot:type_name -> xatu.SlotV2 - 8, // 500: xatu.ClientMeta.Ethereum.Execution.fork_id:type_name -> xatu.ForkID - 143, // 501: xatu.ServerMeta.Event.received_date_time:type_name -> google.protobuf.Timestamp - 128, // 502: xatu.ServerMeta.Client.geo:type_name -> xatu.ServerMeta.Geo - 128, // 503: xatu.ServerMeta.Peer.geo:type_name -> xatu.ServerMeta.Geo - 130, // 504: xatu.ServerMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.ServerMeta.Peer - 130, // 505: xatu.ServerMeta.AdditionalLibp2PTraceConnectedData.peer:type_name -> xatu.ServerMeta.Peer - 130, // 506: xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData.peer:type_name -> xatu.ServerMeta.Peer - 130, // 507: xatu.ServerMeta.AdditionalLibP2PTraceSyntheticHeartbeatData.peer:type_name -> xatu.ServerMeta.Peer - 130, // 508: xatu.ServerMeta.AdditionalLibp2PTraceIdentifyData.peer:type_name -> xatu.ServerMeta.Peer - 128, // 509: xatu.ServerMeta.AdditionalNodeRecordConsensusData.geo:type_name -> xatu.ServerMeta.Geo - 128, // 510: xatu.ServerMeta.AdditionalNodeRecordExecutionData.geo:type_name -> xatu.ServerMeta.Geo - 142, // 511: xatu.ExecutionBlockMetrics.StateReads.accounts:type_name -> google.protobuf.UInt64Value - 142, // 512: xatu.ExecutionBlockMetrics.StateReads.storage_slots:type_name -> google.protobuf.UInt64Value - 142, // 513: xatu.ExecutionBlockMetrics.StateReads.code:type_name -> google.protobuf.UInt64Value - 142, // 514: xatu.ExecutionBlockMetrics.StateReads.code_bytes:type_name -> google.protobuf.UInt64Value - 142, // 515: xatu.ExecutionBlockMetrics.StateWrites.accounts:type_name -> google.protobuf.UInt64Value - 142, // 516: xatu.ExecutionBlockMetrics.StateWrites.accounts_deleted:type_name -> google.protobuf.UInt64Value - 142, // 517: xatu.ExecutionBlockMetrics.StateWrites.storage_slots:type_name -> google.protobuf.UInt64Value - 142, // 518: xatu.ExecutionBlockMetrics.StateWrites.storage_slots_deleted:type_name -> google.protobuf.UInt64Value - 142, // 519: xatu.ExecutionBlockMetrics.StateWrites.code:type_name -> google.protobuf.UInt64Value - 142, // 520: xatu.ExecutionBlockMetrics.StateWrites.code_bytes:type_name -> google.protobuf.UInt64Value - 224, // 521: xatu.ExecutionBlockMetrics.CacheEntry.hits:type_name -> google.protobuf.Int64Value - 224, // 522: xatu.ExecutionBlockMetrics.CacheEntry.misses:type_name -> google.protobuf.Int64Value - 152, // 523: xatu.ExecutionBlockMetrics.CacheEntry.hit_rate:type_name -> google.protobuf.DoubleValue - 224, // 524: xatu.ExecutionBlockMetrics.CodeCacheEntry.hits:type_name -> google.protobuf.Int64Value - 224, // 525: xatu.ExecutionBlockMetrics.CodeCacheEntry.misses:type_name -> google.protobuf.Int64Value - 152, // 526: xatu.ExecutionBlockMetrics.CodeCacheEntry.hit_rate:type_name -> google.protobuf.DoubleValue - 224, // 527: xatu.ExecutionBlockMetrics.CodeCacheEntry.hit_bytes:type_name -> google.protobuf.Int64Value - 224, // 528: xatu.ExecutionBlockMetrics.CodeCacheEntry.miss_bytes:type_name -> google.protobuf.Int64Value - 2, // 529: xatu.EventIngester.CreateEvents:input_type -> xatu.CreateEventsRequest - 3, // 530: xatu.EventIngester.CreateEvents:output_type -> xatu.CreateEventsResponse - 530, // [530:531] is the sub-list for method output_type - 529, // [529:530] is the sub-list for method input_type - 529, // [529:529] is the sub-list for extension type_name - 529, // [529:529] is the sub-list for extension extendee - 0, // [0:529] is the sub-list for field type_name + 105, // 134: xatu.ClientMeta.libp2p_trace_identify:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceIdentifyData + 73, // 135: xatu.ClientMeta.eth_v2_beacon_block_access_list:type_name -> xatu.ClientMeta.AdditionalEthV2BeaconBlockAccessListData + 152, // 136: xatu.ClientMeta.module_name:type_name -> xatu.ModuleName + 128, // 137: xatu.ServerMeta.event:type_name -> xatu.ServerMeta.Event + 130, // 138: xatu.ServerMeta.client:type_name -> xatu.ServerMeta.Client + 132, // 139: xatu.ServerMeta.BEACON_P2P_ATTESTATION:type_name -> xatu.ServerMeta.AdditionalBeaconP2PAttestationData + 133, // 140: xatu.ServerMeta.LIBP2P_TRACE_CONNECTED:type_name -> xatu.ServerMeta.AdditionalLibp2PTraceConnectedData + 134, // 141: xatu.ServerMeta.LIBP2P_TRACE_DISCONNECTED:type_name -> xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData + 137, // 142: xatu.ServerMeta.NODE_RECORD_CONSENSUS:type_name -> xatu.ServerMeta.AdditionalNodeRecordConsensusData + 138, // 143: xatu.ServerMeta.NODE_RECORD_EXECUTION:type_name -> xatu.ServerMeta.AdditionalNodeRecordExecutionData + 135, // 144: xatu.ServerMeta.LIBP2P_TRACE_SYNTHETIC_HEARTBEAT:type_name -> xatu.ServerMeta.AdditionalLibP2PTraceSyntheticHeartbeatData + 136, // 145: xatu.ServerMeta.LIBP2P_TRACE_IDENTIFY:type_name -> xatu.ServerMeta.AdditionalLibp2PTraceIdentifyData + 24, // 146: xatu.Meta.client:type_name -> xatu.ClientMeta + 25, // 147: xatu.Meta.server:type_name -> xatu.ServerMeta + 1, // 148: xatu.Event.name:type_name -> xatu.Event.Name + 144, // 149: xatu.Event.date_time:type_name -> google.protobuf.Timestamp + 143, // 150: xatu.ExecutionBlockMetrics.block_number:type_name -> google.protobuf.UInt64Value + 143, // 151: xatu.ExecutionBlockMetrics.gas_used:type_name -> google.protobuf.UInt64Value + 151, // 152: xatu.ExecutionBlockMetrics.tx_count:type_name -> google.protobuf.UInt32Value + 153, // 153: xatu.ExecutionBlockMetrics.execution_ms:type_name -> google.protobuf.DoubleValue + 153, // 154: xatu.ExecutionBlockMetrics.state_read_ms:type_name -> google.protobuf.DoubleValue + 153, // 155: xatu.ExecutionBlockMetrics.state_hash_ms:type_name -> google.protobuf.DoubleValue + 153, // 156: xatu.ExecutionBlockMetrics.commit_ms:type_name -> google.protobuf.DoubleValue + 153, // 157: xatu.ExecutionBlockMetrics.total_ms:type_name -> google.protobuf.DoubleValue + 153, // 158: xatu.ExecutionBlockMetrics.mgas_per_sec:type_name -> google.protobuf.DoubleValue + 139, // 159: xatu.ExecutionBlockMetrics.state_reads:type_name -> xatu.ExecutionBlockMetrics.StateReads + 140, // 160: xatu.ExecutionBlockMetrics.state_writes:type_name -> xatu.ExecutionBlockMetrics.StateWrites + 141, // 161: xatu.ExecutionBlockMetrics.account_cache:type_name -> xatu.ExecutionBlockMetrics.CacheEntry + 141, // 162: xatu.ExecutionBlockMetrics.storage_cache:type_name -> xatu.ExecutionBlockMetrics.CacheEntry + 142, // 163: xatu.ExecutionBlockMetrics.code_cache:type_name -> xatu.ExecutionBlockMetrics.CodeCacheEntry + 27, // 164: xatu.DecoratedEvent.event:type_name -> xatu.Event + 26, // 165: xatu.DecoratedEvent.meta:type_name -> xatu.Meta + 154, // 166: xatu.DecoratedEvent.eth_v1_events_attestation:type_name -> xatu.eth.v1.Attestation + 155, // 167: xatu.DecoratedEvent.eth_v1_events_block:type_name -> xatu.eth.v1.EventBlock + 146, // 168: xatu.DecoratedEvent.eth_v1_events_chain_reorg:type_name -> xatu.eth.v1.EventChainReorg + 156, // 169: xatu.DecoratedEvent.eth_v1_events_finalized_checkpoint:type_name -> xatu.eth.v1.EventFinalizedCheckpoint + 157, // 170: xatu.DecoratedEvent.eth_v1_events_head:type_name -> xatu.eth.v1.EventHead + 158, // 171: xatu.DecoratedEvent.eth_v1_events_voluntary_exit:type_name -> xatu.eth.v1.EventVoluntaryExit + 159, // 172: xatu.DecoratedEvent.eth_v1_events_contribution_and_proof:type_name -> xatu.eth.v1.EventContributionAndProof + 160, // 173: xatu.DecoratedEvent.eth_v2_beacon_block:type_name -> xatu.eth.v2.EventBlock + 145, // 174: xatu.DecoratedEvent.eth_v1_fork_choice:type_name -> xatu.eth.v1.ForkChoice + 13, // 175: xatu.DecoratedEvent.eth_v1_fork_choice_reorg:type_name -> xatu.DebugForkChoiceReorg + 161, // 176: xatu.DecoratedEvent.eth_v1_beacon_committee:type_name -> xatu.eth.v1.Committee + 162, // 177: xatu.DecoratedEvent.eth_v1_validator_attestation_data:type_name -> xatu.eth.v1.AttestationDataV2 + 163, // 178: xatu.DecoratedEvent.eth_v1_events_attestation_v2:type_name -> xatu.eth.v1.AttestationV2 + 164, // 179: xatu.DecoratedEvent.eth_v1_events_block_v2:type_name -> xatu.eth.v1.EventBlockV2 + 148, // 180: xatu.DecoratedEvent.eth_v1_events_chain_reorg_v2:type_name -> xatu.eth.v1.EventChainReorgV2 + 165, // 181: xatu.DecoratedEvent.eth_v1_events_finalized_checkpoint_v2:type_name -> xatu.eth.v1.EventFinalizedCheckpointV2 + 166, // 182: xatu.DecoratedEvent.eth_v1_events_head_v2:type_name -> xatu.eth.v1.EventHeadV2 + 167, // 183: xatu.DecoratedEvent.eth_v1_events_voluntary_exit_v2:type_name -> xatu.eth.v1.EventVoluntaryExitV2 + 168, // 184: xatu.DecoratedEvent.eth_v1_events_contribution_and_proof_v2:type_name -> xatu.eth.v1.EventContributionAndProofV2 + 169, // 185: xatu.DecoratedEvent.eth_v2_beacon_block_v2:type_name -> xatu.eth.v2.EventBlockV2 + 147, // 186: xatu.DecoratedEvent.eth_v1_fork_choice_v2:type_name -> xatu.eth.v1.ForkChoiceV2 + 14, // 187: xatu.DecoratedEvent.eth_v1_fork_choice_reorg_v2:type_name -> xatu.DebugForkChoiceReorgV2 + 170, // 188: xatu.DecoratedEvent.eth_v2_beacon_block_attester_slashing:type_name -> xatu.eth.v1.AttesterSlashingV2 + 171, // 189: xatu.DecoratedEvent.eth_v2_beacon_block_proposer_slashing:type_name -> xatu.eth.v1.ProposerSlashingV2 + 172, // 190: xatu.DecoratedEvent.eth_v2_beacon_block_voluntary_exit:type_name -> xatu.eth.v1.SignedVoluntaryExitV2 + 173, // 191: xatu.DecoratedEvent.eth_v2_beacon_block_deposit:type_name -> xatu.eth.v1.DepositV2 + 174, // 192: xatu.DecoratedEvent.eth_v2_beacon_block_bls_to_execution_change:type_name -> xatu.eth.v2.SignedBLSToExecutionChangeV2 + 175, // 193: xatu.DecoratedEvent.eth_v2_beacon_block_execution_transaction:type_name -> xatu.eth.v1.Transaction + 176, // 194: xatu.DecoratedEvent.eth_v2_beacon_block_withdrawal:type_name -> xatu.eth.v1.WithdrawalV2 + 177, // 195: xatu.DecoratedEvent.eth_v1_events_blob_sidecar:type_name -> xatu.eth.v1.EventBlobSidecar + 178, // 196: xatu.DecoratedEvent.eth_v1_beacon_block_blob_sidecar:type_name -> xatu.eth.v1.BlobSidecar + 163, // 197: xatu.DecoratedEvent.beacon_p2p_attestation:type_name -> xatu.eth.v1.AttestationV2 + 179, // 198: xatu.DecoratedEvent.eth_v1_proposer_duty:type_name -> xatu.eth.v1.ProposerDuty + 180, // 199: xatu.DecoratedEvent.eth_v2_beacon_block_elaborated_attestation:type_name -> xatu.eth.v1.ElaboratedAttestation + 181, // 200: xatu.DecoratedEvent.libp2p_trace_add_peer:type_name -> xatu.libp2p.AddPeer + 182, // 201: xatu.DecoratedEvent.libp2p_trace_remove_peer:type_name -> xatu.libp2p.RemovePeer + 183, // 202: xatu.DecoratedEvent.libp2p_trace_recv_rpc:type_name -> xatu.libp2p.RecvRPC + 184, // 203: xatu.DecoratedEvent.libp2p_trace_send_rpc:type_name -> xatu.libp2p.SendRPC + 185, // 204: xatu.DecoratedEvent.libp2p_trace_join:type_name -> xatu.libp2p.Join + 186, // 205: xatu.DecoratedEvent.libp2p_trace_connected:type_name -> xatu.libp2p.Connected + 187, // 206: xatu.DecoratedEvent.libp2p_trace_disconnected:type_name -> xatu.libp2p.Disconnected + 188, // 207: xatu.DecoratedEvent.libp2p_trace_handle_metadata:type_name -> xatu.libp2p.HandleMetadata + 189, // 208: xatu.DecoratedEvent.libp2p_trace_handle_status:type_name -> xatu.libp2p.HandleStatus + 190, // 209: xatu.DecoratedEvent.libp2p_trace_gossipsub_beacon_block:type_name -> xatu.libp2p.gossipsub.eth.BeaconBlock + 154, // 210: xatu.DecoratedEvent.libp2p_trace_gossipsub_beacon_attestation:type_name -> xatu.eth.v1.Attestation + 191, // 211: xatu.DecoratedEvent.libp2p_trace_gossipsub_blob_sidecar:type_name -> xatu.libp2p.gossipsub.eth.BlobSidecar + 15, // 212: xatu.DecoratedEvent.eth_v1_validators:type_name -> xatu.Validators + 192, // 213: xatu.DecoratedEvent.mev_relay_bid_trace_builder_block_submission:type_name -> xatu.mevrelay.BidTrace + 193, // 214: xatu.DecoratedEvent.mev_relay_payload_delivered:type_name -> xatu.mevrelay.ProposerPayloadDelivered + 169, // 215: xatu.DecoratedEvent.eth_v3_validator_block:type_name -> xatu.eth.v2.EventBlockV2 + 194, // 216: xatu.DecoratedEvent.mev_relay_validator_registration:type_name -> xatu.mevrelay.ValidatorRegistration + 195, // 217: xatu.DecoratedEvent.eth_v1_events_block_gossip:type_name -> xatu.eth.v1.EventBlockGossip + 196, // 218: xatu.DecoratedEvent.libp2p_trace_drop_rpc:type_name -> xatu.libp2p.DropRPC + 197, // 219: xatu.DecoratedEvent.libp2p_trace_leave:type_name -> xatu.libp2p.Leave + 198, // 220: xatu.DecoratedEvent.libp2p_trace_graft:type_name -> xatu.libp2p.Graft + 199, // 221: xatu.DecoratedEvent.libp2p_trace_prune:type_name -> xatu.libp2p.Prune + 200, // 222: xatu.DecoratedEvent.libp2p_trace_duplicate_message:type_name -> xatu.libp2p.DuplicateMessage + 201, // 223: xatu.DecoratedEvent.libp2p_trace_deliver_message:type_name -> xatu.libp2p.DeliverMessage + 202, // 224: xatu.DecoratedEvent.libp2p_trace_publish_message:type_name -> xatu.libp2p.PublishMessage + 203, // 225: xatu.DecoratedEvent.libp2p_trace_reject_message:type_name -> xatu.libp2p.RejectMessage + 204, // 226: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_ihave:type_name -> xatu.libp2p.ControlIHaveMetaItem + 205, // 227: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_iwant:type_name -> xatu.libp2p.ControlIWantMetaItem + 206, // 228: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_idontwant:type_name -> xatu.libp2p.ControlIDontWantMetaItem + 207, // 229: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_graft:type_name -> xatu.libp2p.ControlGraftMetaItem + 208, // 230: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_prune:type_name -> xatu.libp2p.ControlPruneMetaItem + 209, // 231: xatu.DecoratedEvent.libp2p_trace_rpc_meta_subscription:type_name -> xatu.libp2p.SubMetaItem + 210, // 232: xatu.DecoratedEvent.libp2p_trace_rpc_meta_message:type_name -> xatu.libp2p.MessageMetaItem + 211, // 233: xatu.DecoratedEvent.node_record_consensus:type_name -> xatu.noderecord.Consensus + 212, // 234: xatu.DecoratedEvent.node_record_execution:type_name -> xatu.noderecord.Execution + 213, // 235: xatu.DecoratedEvent.libp2p_trace_gossipsub_aggregate_and_proof:type_name -> xatu.eth.v1.SignedAggregateAttestationAndProofV2 + 214, // 236: xatu.DecoratedEvent.eth_v1_events_data_column_sidecar:type_name -> xatu.eth.v1.EventDataColumnSidecar + 215, // 237: xatu.DecoratedEvent.libp2p_trace_gossipsub_data_column_sidecar:type_name -> xatu.libp2p.gossipsub.eth.DataColumnSidecar + 216, // 238: xatu.DecoratedEvent.libp2p_trace_synthetic_heartbeat:type_name -> xatu.libp2p.SyntheticHeartbeat + 217, // 239: xatu.DecoratedEvent.libp2p_trace_identify:type_name -> xatu.libp2p.Identify + 218, // 240: xatu.DecoratedEvent.libp2p_trace_rpc_data_column_custody_probe:type_name -> xatu.libp2p.DataColumnCustodyProbe + 19, // 241: xatu.DecoratedEvent.execution_state_size:type_name -> xatu.ExecutionStateSize + 20, // 242: xatu.DecoratedEvent.consensus_engine_api_new_payload:type_name -> xatu.ConsensusEngineAPINewPayload + 21, // 243: xatu.DecoratedEvent.consensus_engine_api_get_blobs:type_name -> xatu.ConsensusEngineAPIGetBlobs + 22, // 244: xatu.DecoratedEvent.execution_engine_new_payload:type_name -> xatu.ExecutionEngineNewPayload + 23, // 245: xatu.DecoratedEvent.execution_engine_get_blobs:type_name -> xatu.ExecutionEngineGetBlobs + 219, // 246: xatu.DecoratedEvent.eth_v1_beacon_blob:type_name -> xatu.eth.v1.Blob + 16, // 247: xatu.DecoratedEvent.eth_v1_beacon_sync_committee:type_name -> xatu.SyncCommitteeData + 17, // 248: xatu.DecoratedEvent.eth_v2_beacon_block_sync_aggregate:type_name -> xatu.SyncAggregateData + 28, // 249: xatu.DecoratedEvent.execution_block_metrics:type_name -> xatu.ExecutionBlockMetrics + 220, // 250: xatu.DecoratedEvent.eth_v2_beacon_block_access_list:type_name -> xatu.eth.v1.BlockAccessListChange + 125, // 251: xatu.ClientMeta.Ethereum.network:type_name -> xatu.ClientMeta.Ethereum.Network + 126, // 252: xatu.ClientMeta.Ethereum.execution:type_name -> xatu.ClientMeta.Ethereum.Execution + 127, // 253: xatu.ClientMeta.Ethereum.consensus:type_name -> xatu.ClientMeta.Ethereum.Consensus + 4, // 254: xatu.ClientMeta.AdditionalEthV1AttestationSourceData.epoch:type_name -> xatu.Epoch + 5, // 255: xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data.epoch:type_name -> xatu.EpochV2 + 4, // 256: xatu.ClientMeta.AdditionalEthV1AttestationTargetData.epoch:type_name -> xatu.Epoch + 5, // 257: xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data.epoch:type_name -> xatu.EpochV2 + 32, // 258: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceData + 34, // 259: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetData + 6, // 260: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.slot:type_name -> xatu.Slot + 4, // 261: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.epoch:type_name -> xatu.Epoch + 9, // 262: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.propagation:type_name -> xatu.Propagation + 11, // 263: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.attesting_validator:type_name -> xatu.AttestingValidator + 33, // 264: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 35, // 265: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 7, // 266: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.slot:type_name -> xatu.SlotV2 + 5, // 267: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.epoch:type_name -> xatu.EpochV2 + 10, // 268: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.propagation:type_name -> xatu.PropagationV2 + 12, // 269: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.attesting_validator:type_name -> xatu.AttestingValidatorV2 + 4, // 270: xatu.ClientMeta.AdditionalEthV1EventsHeadData.epoch:type_name -> xatu.Epoch + 6, // 271: xatu.ClientMeta.AdditionalEthV1EventsHeadData.slot:type_name -> xatu.Slot + 9, // 272: xatu.ClientMeta.AdditionalEthV1EventsHeadData.propagation:type_name -> xatu.Propagation + 5, // 273: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.epoch:type_name -> xatu.EpochV2 + 7, // 274: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.slot:type_name -> xatu.SlotV2 + 10, // 275: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.propagation:type_name -> xatu.PropagationV2 + 4, // 276: xatu.ClientMeta.AdditionalEthV1EventsBlockData.epoch:type_name -> xatu.Epoch + 6, // 277: xatu.ClientMeta.AdditionalEthV1EventsBlockData.slot:type_name -> xatu.Slot + 9, // 278: xatu.ClientMeta.AdditionalEthV1EventsBlockData.propagation:type_name -> xatu.Propagation + 5, // 279: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.epoch:type_name -> xatu.EpochV2 + 7, // 280: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.slot:type_name -> xatu.SlotV2 + 10, // 281: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.propagation:type_name -> xatu.PropagationV2 + 5, // 282: xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData.epoch:type_name -> xatu.EpochV2 + 7, // 283: xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData.slot:type_name -> xatu.SlotV2 + 10, // 284: xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData.propagation:type_name -> xatu.PropagationV2 + 4, // 285: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitData.epoch:type_name -> xatu.Epoch + 5, // 286: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.epoch:type_name -> xatu.EpochV2 + 5, // 287: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 288: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.wallclock_slot:type_name -> xatu.SlotV2 + 4, // 289: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointData.epoch:type_name -> xatu.Epoch + 5, // 290: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointV2Data.epoch:type_name -> xatu.EpochV2 + 4, // 291: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.epoch:type_name -> xatu.Epoch + 6, // 292: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.slot:type_name -> xatu.Slot + 9, // 293: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.propagation:type_name -> xatu.Propagation + 5, // 294: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.epoch:type_name -> xatu.EpochV2 + 7, // 295: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.slot:type_name -> xatu.SlotV2 + 10, // 296: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.propagation:type_name -> xatu.PropagationV2 + 4, // 297: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.epoch:type_name -> xatu.Epoch + 6, // 298: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.slot:type_name -> xatu.Slot + 9, // 299: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.propagation:type_name -> xatu.Propagation + 5, // 300: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.epoch:type_name -> xatu.EpochV2 + 7, // 301: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.slot:type_name -> xatu.SlotV2 + 10, // 302: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.propagation:type_name -> xatu.PropagationV2 + 49, // 303: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofData.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData + 50, // 304: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofV2Data.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data + 4, // 305: xatu.ClientMeta.ForkChoiceSnapshot.request_epoch:type_name -> xatu.Epoch + 6, // 306: xatu.ClientMeta.ForkChoiceSnapshot.request_slot:type_name -> xatu.Slot + 144, // 307: xatu.ClientMeta.ForkChoiceSnapshot.timestamp:type_name -> google.protobuf.Timestamp + 5, // 308: xatu.ClientMeta.ForkChoiceSnapshotV2.request_epoch:type_name -> xatu.EpochV2 + 7, // 309: xatu.ClientMeta.ForkChoiceSnapshotV2.request_slot:type_name -> xatu.SlotV2 + 143, // 310: xatu.ClientMeta.ForkChoiceSnapshotV2.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value + 143, // 311: xatu.ClientMeta.ForkChoiceSnapshotV2.request_duration_ms:type_name -> google.protobuf.UInt64Value + 144, // 312: xatu.ClientMeta.ForkChoiceSnapshotV2.timestamp:type_name -> google.protobuf.Timestamp + 53, // 313: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshot + 54, // 314: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceV2Data.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 + 53, // 315: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshot + 53, // 316: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshot + 54, // 317: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 + 54, // 318: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 + 5, // 319: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.epoch:type_name -> xatu.EpochV2 + 7, // 320: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.slot:type_name -> xatu.SlotV2 + 5, // 321: xatu.ClientMeta.AdditionalEthV1BeaconSyncCommitteeData.epoch:type_name -> xatu.EpochV2 + 143, // 322: xatu.ClientMeta.AdditionalEthV1BeaconSyncCommitteeData.sync_committee_period:type_name -> google.protobuf.UInt64Value + 18, // 323: xatu.ClientMeta.AdditionalEthV2BeaconBlockSyncAggregateData.block:type_name -> xatu.BlockIdentifier + 143, // 324: xatu.ClientMeta.AdditionalEthV2BeaconBlockSyncAggregateData.sync_committee_period:type_name -> google.protobuf.UInt64Value + 143, // 325: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.nonce:type_name -> google.protobuf.UInt64Value + 143, // 326: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.gas:type_name -> google.protobuf.UInt64Value + 151, // 327: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.type:type_name -> google.protobuf.UInt32Value + 143, // 328: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.blob_gas:type_name -> google.protobuf.UInt64Value + 4, // 329: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.epoch:type_name -> xatu.Epoch + 6, // 330: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.slot:type_name -> xatu.Slot + 5, // 331: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.epoch:type_name -> xatu.EpochV2 + 7, // 332: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.slot:type_name -> xatu.SlotV2 + 143, // 333: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_count:type_name -> google.protobuf.UInt64Value + 143, // 334: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes:type_name -> google.protobuf.UInt64Value + 143, // 335: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes_compressed:type_name -> google.protobuf.UInt64Value + 143, // 336: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes:type_name -> google.protobuf.UInt64Value + 143, // 337: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes_compressed:type_name -> google.protobuf.UInt64Value + 18, // 338: xatu.ClientMeta.AdditionalEthV2BeaconBlockAttesterSlashingData.block:type_name -> xatu.BlockIdentifier + 18, // 339: xatu.ClientMeta.AdditionalEthV2BeaconBlockProposerSlashingData.block:type_name -> xatu.BlockIdentifier + 18, // 340: xatu.ClientMeta.AdditionalEthV2BeaconBlockVoluntaryExitData.block:type_name -> xatu.BlockIdentifier + 18, // 341: xatu.ClientMeta.AdditionalEthV2BeaconBlockDepositData.block:type_name -> xatu.BlockIdentifier + 18, // 342: xatu.ClientMeta.AdditionalEthV2BeaconBlockBLSToExecutionChangeData.block:type_name -> xatu.BlockIdentifier + 18, // 343: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.block:type_name -> xatu.BlockIdentifier + 143, // 344: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.position_in_block:type_name -> google.protobuf.UInt64Value + 18, // 345: xatu.ClientMeta.AdditionalEthV2BeaconBlockWithdrawalData.block:type_name -> xatu.BlockIdentifier + 18, // 346: xatu.ClientMeta.AdditionalEthV2BeaconBlockAccessListData.block:type_name -> xatu.BlockIdentifier + 143, // 347: xatu.ClientMeta.AttestationDataSnapshot.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value + 143, // 348: xatu.ClientMeta.AttestationDataSnapshot.request_duration_ms:type_name -> google.protobuf.UInt64Value + 144, // 349: xatu.ClientMeta.AttestationDataSnapshot.timestamp:type_name -> google.protobuf.Timestamp + 33, // 350: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 35, // 351: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 5, // 352: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.epoch:type_name -> xatu.EpochV2 + 7, // 353: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.slot:type_name -> xatu.SlotV2 + 74, // 354: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.Snapshot:type_name -> xatu.ClientMeta.AttestationDataSnapshot + 5, // 355: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 356: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.slot:type_name -> xatu.SlotV2 + 10, // 357: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.propagation:type_name -> xatu.PropagationV2 + 5, // 358: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 359: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.slot:type_name -> xatu.SlotV2 + 10, // 360: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.propagation:type_name -> xatu.PropagationV2 + 5, // 361: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 362: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.slot:type_name -> xatu.SlotV2 + 143, // 363: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_size:type_name -> google.protobuf.UInt64Value + 143, // 364: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_empty_size:type_name -> google.protobuf.UInt64Value + 33, // 365: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 35, // 366: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 7, // 367: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.slot:type_name -> xatu.SlotV2 + 5, // 368: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.epoch:type_name -> xatu.EpochV2 + 10, // 369: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.propagation:type_name -> xatu.PropagationV2 + 12, // 370: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 + 221, // 371: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.libp2p.Peer + 151, // 372: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.subnet:type_name -> google.protobuf.UInt32Value + 222, // 373: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.validated:type_name -> google.protobuf.BoolValue + 5, // 374: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.epoch:type_name -> xatu.EpochV2 + 7, // 375: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.slot:type_name -> xatu.SlotV2 + 18, // 376: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.block:type_name -> xatu.BlockIdentifier + 143, // 377: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.position_in_block:type_name -> google.protobuf.UInt64Value + 5, // 378: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.epoch:type_name -> xatu.EpochV2 + 7, // 379: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.slot:type_name -> xatu.SlotV2 + 33, // 380: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 35, // 381: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 223, // 382: xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 383: xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 384: xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 385: xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 386: xatu.ClientMeta.AdditionalLibP2PTraceDropRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 387: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIHaveData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 388: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIWantData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 389: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIDontWantData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 390: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlGraftData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 391: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlPruneData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 392: xatu.ClientMeta.AdditionalLibP2PTraceJoinData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 393: xatu.ClientMeta.AdditionalLibP2PTraceLeaveData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 394: xatu.ClientMeta.AdditionalLibP2PTraceGraftData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 395: xatu.ClientMeta.AdditionalLibP2PTracePruneData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 396: xatu.ClientMeta.AdditionalLibP2PTraceDuplicateMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 397: xatu.ClientMeta.AdditionalLibP2PTraceDeliverMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 398: xatu.ClientMeta.AdditionalLibP2PTracePublishMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 399: xatu.ClientMeta.AdditionalLibP2PTraceRejectMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 400: xatu.ClientMeta.AdditionalLibP2PTraceConnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 401: xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 402: xatu.ClientMeta.AdditionalLibP2PTraceSyntheticHeartbeatData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 403: xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 404: xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 405: xatu.ClientMeta.AdditionalLibP2PTraceIdentifyData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 406: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 5, // 407: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.epoch:type_name -> xatu.EpochV2 + 7, // 408: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.slot:type_name -> xatu.SlotV2 + 5, // 409: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 410: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.wallclock_slot:type_name -> xatu.SlotV2 + 223, // 411: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaSubscriptionData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 412: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 5, // 413: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.epoch:type_name -> xatu.EpochV2 + 7, // 414: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.slot:type_name -> xatu.SlotV2 + 5, // 415: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 416: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 417: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.propagation:type_name -> xatu.PropagationV2 + 223, // 418: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 224, // 419: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.topic:type_name -> google.protobuf.StringValue + 151, // 420: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_size:type_name -> google.protobuf.UInt32Value + 224, // 421: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_id:type_name -> google.protobuf.StringValue + 5, // 422: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData.epoch:type_name -> xatu.EpochV2 + 5, // 423: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData.epoch:type_name -> xatu.EpochV2 + 110, // 424: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.source:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData + 111, // 425: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.target:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData + 7, // 426: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.slot:type_name -> xatu.SlotV2 + 5, // 427: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.epoch:type_name -> xatu.EpochV2 + 10, // 428: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.propagation:type_name -> xatu.PropagationV2 + 12, // 429: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 + 5, // 430: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 431: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_slot:type_name -> xatu.SlotV2 + 223, // 432: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 224, // 433: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.topic:type_name -> google.protobuf.StringValue + 151, // 434: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_size:type_name -> google.protobuf.UInt32Value + 224, // 435: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_id:type_name -> google.protobuf.StringValue + 5, // 436: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.epoch:type_name -> xatu.EpochV2 + 7, // 437: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.slot:type_name -> xatu.SlotV2 + 5, // 438: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 439: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 440: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.propagation:type_name -> xatu.PropagationV2 + 143, // 441: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.aggregator_index:type_name -> google.protobuf.UInt64Value + 223, // 442: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 224, // 443: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.topic:type_name -> google.protobuf.StringValue + 151, // 444: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.message_size:type_name -> google.protobuf.UInt32Value + 224, // 445: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.message_id:type_name -> google.protobuf.StringValue + 5, // 446: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 447: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.slot:type_name -> xatu.SlotV2 + 5, // 448: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 449: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 450: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.propagation:type_name -> xatu.PropagationV2 + 223, // 451: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 224, // 452: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.topic:type_name -> google.protobuf.StringValue + 151, // 453: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_size:type_name -> google.protobuf.UInt32Value + 224, // 454: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_id:type_name -> google.protobuf.StringValue + 5, // 455: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 456: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.slot:type_name -> xatu.SlotV2 + 5, // 457: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 458: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 459: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.propagation:type_name -> xatu.PropagationV2 + 223, // 460: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 224, // 461: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.topic:type_name -> google.protobuf.StringValue + 151, // 462: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.message_size:type_name -> google.protobuf.UInt32Value + 224, // 463: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.message_id:type_name -> google.protobuf.StringValue + 5, // 464: xatu.ClientMeta.AdditionalEthV1ValidatorsData.epoch:type_name -> xatu.EpochV2 + 225, // 465: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.relay:type_name -> xatu.mevrelay.Relay + 7, // 466: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.slot:type_name -> xatu.SlotV2 + 7, // 467: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.wallclock_slot:type_name -> xatu.SlotV2 + 5, // 468: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.epoch:type_name -> xatu.EpochV2 + 5, // 469: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.wallclock_epoch:type_name -> xatu.EpochV2 + 143, // 470: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.requested_at_slot_time:type_name -> google.protobuf.UInt64Value + 143, // 471: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.response_at_slot_time:type_name -> google.protobuf.UInt64Value + 225, // 472: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.relay:type_name -> xatu.mevrelay.Relay + 7, // 473: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.slot:type_name -> xatu.SlotV2 + 7, // 474: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.wallclock_slot:type_name -> xatu.SlotV2 + 5, // 475: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.epoch:type_name -> xatu.EpochV2 + 5, // 476: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.wallclock_epoch:type_name -> xatu.EpochV2 + 143, // 477: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.requested_at_slot_time:type_name -> google.protobuf.UInt64Value + 143, // 478: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.response_at_slot_time:type_name -> google.protobuf.UInt64Value + 5, // 479: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.epoch:type_name -> xatu.EpochV2 + 7, // 480: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.slot:type_name -> xatu.SlotV2 + 143, // 481: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_count:type_name -> google.protobuf.UInt64Value + 143, // 482: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_total_bytes:type_name -> google.protobuf.UInt64Value + 143, // 483: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_total_bytes_compressed:type_name -> google.protobuf.UInt64Value + 143, // 484: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.total_bytes:type_name -> google.protobuf.UInt64Value + 143, // 485: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.total_bytes_compressed:type_name -> google.protobuf.UInt64Value + 143, // 486: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.request_duration_ms:type_name -> google.protobuf.UInt64Value + 144, // 487: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.requested_at:type_name -> google.protobuf.Timestamp + 225, // 488: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.relay:type_name -> xatu.mevrelay.Relay + 7, // 489: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.slot:type_name -> xatu.SlotV2 + 7, // 490: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.wallclock_slot:type_name -> xatu.SlotV2 + 5, // 491: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.epoch:type_name -> xatu.EpochV2 + 5, // 492: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.wallclock_epoch:type_name -> xatu.EpochV2 + 143, // 493: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.validator_index:type_name -> google.protobuf.UInt64Value + 5, // 494: xatu.ClientMeta.AdditionalNodeRecordConsensusData.finalized_epoch:type_name -> xatu.EpochV2 + 7, // 495: xatu.ClientMeta.AdditionalNodeRecordConsensusData.head_slot:type_name -> xatu.SlotV2 + 5, // 496: xatu.ClientMeta.AdditionalNodeRecordConsensusData.head_epoch:type_name -> xatu.EpochV2 + 5, // 497: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData.epoch:type_name -> xatu.EpochV2 + 7, // 498: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData.slot:type_name -> xatu.SlotV2 + 5, // 499: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData.epoch:type_name -> xatu.EpochV2 + 7, // 500: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData.slot:type_name -> xatu.SlotV2 + 5, // 501: xatu.ClientMeta.AdditionalEthV1BeaconBlobData.epoch:type_name -> xatu.EpochV2 + 7, // 502: xatu.ClientMeta.AdditionalEthV1BeaconBlobData.slot:type_name -> xatu.SlotV2 + 8, // 503: xatu.ClientMeta.Ethereum.Execution.fork_id:type_name -> xatu.ForkID + 144, // 504: xatu.ServerMeta.Event.received_date_time:type_name -> google.protobuf.Timestamp + 129, // 505: xatu.ServerMeta.Client.geo:type_name -> xatu.ServerMeta.Geo + 129, // 506: xatu.ServerMeta.Peer.geo:type_name -> xatu.ServerMeta.Geo + 131, // 507: xatu.ServerMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.ServerMeta.Peer + 131, // 508: xatu.ServerMeta.AdditionalLibp2PTraceConnectedData.peer:type_name -> xatu.ServerMeta.Peer + 131, // 509: xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData.peer:type_name -> xatu.ServerMeta.Peer + 131, // 510: xatu.ServerMeta.AdditionalLibP2PTraceSyntheticHeartbeatData.peer:type_name -> xatu.ServerMeta.Peer + 131, // 511: xatu.ServerMeta.AdditionalLibp2PTraceIdentifyData.peer:type_name -> xatu.ServerMeta.Peer + 129, // 512: xatu.ServerMeta.AdditionalNodeRecordConsensusData.geo:type_name -> xatu.ServerMeta.Geo + 129, // 513: xatu.ServerMeta.AdditionalNodeRecordExecutionData.geo:type_name -> xatu.ServerMeta.Geo + 143, // 514: xatu.ExecutionBlockMetrics.StateReads.accounts:type_name -> google.protobuf.UInt64Value + 143, // 515: xatu.ExecutionBlockMetrics.StateReads.storage_slots:type_name -> google.protobuf.UInt64Value + 143, // 516: xatu.ExecutionBlockMetrics.StateReads.code:type_name -> google.protobuf.UInt64Value + 143, // 517: xatu.ExecutionBlockMetrics.StateReads.code_bytes:type_name -> google.protobuf.UInt64Value + 143, // 518: xatu.ExecutionBlockMetrics.StateWrites.accounts:type_name -> google.protobuf.UInt64Value + 143, // 519: xatu.ExecutionBlockMetrics.StateWrites.accounts_deleted:type_name -> google.protobuf.UInt64Value + 143, // 520: xatu.ExecutionBlockMetrics.StateWrites.storage_slots:type_name -> google.protobuf.UInt64Value + 143, // 521: xatu.ExecutionBlockMetrics.StateWrites.storage_slots_deleted:type_name -> google.protobuf.UInt64Value + 143, // 522: xatu.ExecutionBlockMetrics.StateWrites.code:type_name -> google.protobuf.UInt64Value + 143, // 523: xatu.ExecutionBlockMetrics.StateWrites.code_bytes:type_name -> google.protobuf.UInt64Value + 226, // 524: xatu.ExecutionBlockMetrics.CacheEntry.hits:type_name -> google.protobuf.Int64Value + 226, // 525: xatu.ExecutionBlockMetrics.CacheEntry.misses:type_name -> google.protobuf.Int64Value + 153, // 526: xatu.ExecutionBlockMetrics.CacheEntry.hit_rate:type_name -> google.protobuf.DoubleValue + 226, // 527: xatu.ExecutionBlockMetrics.CodeCacheEntry.hits:type_name -> google.protobuf.Int64Value + 226, // 528: xatu.ExecutionBlockMetrics.CodeCacheEntry.misses:type_name -> google.protobuf.Int64Value + 153, // 529: xatu.ExecutionBlockMetrics.CodeCacheEntry.hit_rate:type_name -> google.protobuf.DoubleValue + 226, // 530: xatu.ExecutionBlockMetrics.CodeCacheEntry.hit_bytes:type_name -> google.protobuf.Int64Value + 226, // 531: xatu.ExecutionBlockMetrics.CodeCacheEntry.miss_bytes:type_name -> google.protobuf.Int64Value + 2, // 532: xatu.EventIngester.CreateEvents:input_type -> xatu.CreateEventsRequest + 3, // 533: xatu.EventIngester.CreateEvents:output_type -> xatu.CreateEventsResponse + 533, // [533:534] is the sub-list for method output_type + 532, // [532:533] is the sub-list for method input_type + 532, // [532:532] is the sub-list for extension type_name + 532, // [532:532] is the sub-list for extension extendee + 0, // [0:532] is the sub-list for field type_name } func init() { file_pkg_proto_xatu_event_ingester_proto_init() } @@ -17843,7 +17960,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[71].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AttestationDataSnapshot); i { + switch v := v.(*ClientMeta_AdditionalEthV2BeaconBlockAccessListData); i { case 0: return &v.state case 1: @@ -17855,7 +17972,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[72].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalEthV1ValidatorAttestationDataData); i { + switch v := v.(*ClientMeta_AttestationDataSnapshot); i { case 0: return &v.state case 1: @@ -17867,7 +17984,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[73].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalEthV1EventsBlobSidecarData); i { + switch v := v.(*ClientMeta_AdditionalEthV1ValidatorAttestationDataData); i { case 0: return &v.state case 1: @@ -17879,7 +17996,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[74].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalEthV1EventsDataColumnSidecarData); i { + switch v := v.(*ClientMeta_AdditionalEthV1EventsBlobSidecarData); i { case 0: return &v.state case 1: @@ -17891,7 +18008,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[75].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalEthV1BeaconBlobSidecarData); i { + switch v := v.(*ClientMeta_AdditionalEthV1EventsDataColumnSidecarData); i { case 0: return &v.state case 1: @@ -17903,7 +18020,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[76].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalBeaconP2PAttestationData); i { + switch v := v.(*ClientMeta_AdditionalEthV1BeaconBlobSidecarData); i { case 0: return &v.state case 1: @@ -17915,7 +18032,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[77].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalEthV1ProposerDutyData); i { + switch v := v.(*ClientMeta_AdditionalBeaconP2PAttestationData); i { case 0: return &v.state case 1: @@ -17927,7 +18044,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[78].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData); i { + switch v := v.(*ClientMeta_AdditionalEthV1ProposerDutyData); i { case 0: return &v.state case 1: @@ -17939,7 +18056,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[79].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceAddPeerData); i { + switch v := v.(*ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData); i { case 0: return &v.state case 1: @@ -17951,7 +18068,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[80].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRemovePeerData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceAddPeerData); i { case 0: return &v.state case 1: @@ -17963,7 +18080,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[81].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRecvRPCData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRemovePeerData); i { case 0: return &v.state case 1: @@ -17975,7 +18092,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[82].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceSendRPCData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRecvRPCData); i { case 0: return &v.state case 1: @@ -17987,7 +18104,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[83].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceDropRPCData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceSendRPCData); i { case 0: return &v.state case 1: @@ -17999,7 +18116,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[84].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceDropRPCData); i { case 0: return &v.state case 1: @@ -18011,7 +18128,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[85].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData); i { case 0: return &v.state case 1: @@ -18023,7 +18140,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[86].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData); i { case 0: return &v.state case 1: @@ -18035,7 +18152,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[87].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData); i { case 0: return &v.state case 1: @@ -18047,7 +18164,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[88].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData); i { case 0: return &v.state case 1: @@ -18059,7 +18176,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[89].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceJoinData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData); i { case 0: return &v.state case 1: @@ -18071,7 +18188,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[90].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceLeaveData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceJoinData); i { case 0: return &v.state case 1: @@ -18083,7 +18200,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[91].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceGraftData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceLeaveData); i { case 0: return &v.state case 1: @@ -18095,7 +18212,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[92].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTracePruneData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGraftData); i { case 0: return &v.state case 1: @@ -18107,7 +18224,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[93].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceDuplicateMessageData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTracePruneData); i { case 0: return &v.state case 1: @@ -18119,7 +18236,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[94].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceDeliverMessageData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceDuplicateMessageData); i { case 0: return &v.state case 1: @@ -18131,7 +18248,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[95].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTracePublishMessageData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceDeliverMessageData); i { case 0: return &v.state case 1: @@ -18143,7 +18260,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[96].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRejectMessageData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTracePublishMessageData); i { case 0: return &v.state case 1: @@ -18155,7 +18272,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[97].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceConnectedData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRejectMessageData); i { case 0: return &v.state case 1: @@ -18167,7 +18284,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[98].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceDisconnectedData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceConnectedData); i { case 0: return &v.state case 1: @@ -18179,7 +18296,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[99].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceDisconnectedData); i { case 0: return &v.state case 1: @@ -18191,7 +18308,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[100].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceHandleMetadataData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData); i { case 0: return &v.state case 1: @@ -18203,7 +18320,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[101].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceHandleStatusData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceHandleMetadataData); i { case 0: return &v.state case 1: @@ -18215,7 +18332,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[102].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceIdentifyData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceHandleStatusData); i { case 0: return &v.state case 1: @@ -18227,7 +18344,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[103].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceIdentifyData); i { case 0: return &v.state case 1: @@ -18239,7 +18356,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[104].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData); i { case 0: return &v.state case 1: @@ -18251,7 +18368,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[105].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData); i { case 0: return &v.state case 1: @@ -18263,7 +18380,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[106].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData); i { case 0: return &v.state case 1: @@ -18275,7 +18392,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[107].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData); i { case 0: return &v.state case 1: @@ -18287,7 +18404,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[108].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData); i { case 0: return &v.state case 1: @@ -18299,7 +18416,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[109].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData); i { case 0: return &v.state case 1: @@ -18311,7 +18428,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[110].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData); i { case 0: return &v.state case 1: @@ -18323,7 +18440,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[111].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData); i { case 0: return &v.state case 1: @@ -18335,7 +18452,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[112].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData); i { case 0: return &v.state case 1: @@ -18347,7 +18464,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[113].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalEthV1ValidatorsData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData); i { case 0: return &v.state case 1: @@ -18359,7 +18476,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[114].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData); i { + switch v := v.(*ClientMeta_AdditionalEthV1ValidatorsData); i { case 0: return &v.state case 1: @@ -18371,7 +18488,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[115].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalMevRelayPayloadDeliveredData); i { + switch v := v.(*ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData); i { case 0: return &v.state case 1: @@ -18383,7 +18500,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[116].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalEthV3ValidatorBlockData); i { + switch v := v.(*ClientMeta_AdditionalMevRelayPayloadDeliveredData); i { case 0: return &v.state case 1: @@ -18395,7 +18512,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[117].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalMevRelayValidatorRegistrationData); i { + switch v := v.(*ClientMeta_AdditionalEthV3ValidatorBlockData); i { case 0: return &v.state case 1: @@ -18407,7 +18524,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[118].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalNodeRecordConsensusData); i { + switch v := v.(*ClientMeta_AdditionalMevRelayValidatorRegistrationData); i { case 0: return &v.state case 1: @@ -18419,7 +18536,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[119].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalConsensusEngineAPINewPayloadData); i { + switch v := v.(*ClientMeta_AdditionalNodeRecordConsensusData); i { case 0: return &v.state case 1: @@ -18431,7 +18548,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[120].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalConsensusEngineAPIGetBlobsData); i { + switch v := v.(*ClientMeta_AdditionalConsensusEngineAPINewPayloadData); i { case 0: return &v.state case 1: @@ -18443,7 +18560,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[121].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalEthV1BeaconBlobData); i { + switch v := v.(*ClientMeta_AdditionalConsensusEngineAPIGetBlobsData); i { case 0: return &v.state case 1: @@ -18455,7 +18572,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[122].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_Ethereum_Network); i { + switch v := v.(*ClientMeta_AdditionalEthV1BeaconBlobData); i { case 0: return &v.state case 1: @@ -18467,7 +18584,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[123].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_Ethereum_Execution); i { + switch v := v.(*ClientMeta_Ethereum_Network); i { case 0: return &v.state case 1: @@ -18479,7 +18596,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[124].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_Ethereum_Consensus); i { + switch v := v.(*ClientMeta_Ethereum_Execution); i { case 0: return &v.state case 1: @@ -18491,7 +18608,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[125].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_Event); i { + switch v := v.(*ClientMeta_Ethereum_Consensus); i { case 0: return &v.state case 1: @@ -18503,7 +18620,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[126].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_Geo); i { + switch v := v.(*ServerMeta_Event); i { case 0: return &v.state case 1: @@ -18515,7 +18632,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[127].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_Client); i { + switch v := v.(*ServerMeta_Geo); i { case 0: return &v.state case 1: @@ -18527,7 +18644,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[128].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_Peer); i { + switch v := v.(*ServerMeta_Client); i { case 0: return &v.state case 1: @@ -18539,7 +18656,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[129].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_AdditionalBeaconP2PAttestationData); i { + switch v := v.(*ServerMeta_Peer); i { case 0: return &v.state case 1: @@ -18551,7 +18668,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[130].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_AdditionalLibp2PTraceConnectedData); i { + switch v := v.(*ServerMeta_AdditionalBeaconP2PAttestationData); i { case 0: return &v.state case 1: @@ -18563,7 +18680,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[131].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_AdditionalLibp2PTraceDisconnectedData); i { + switch v := v.(*ServerMeta_AdditionalLibp2PTraceConnectedData); i { case 0: return &v.state case 1: @@ -18575,7 +18692,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[132].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData); i { + switch v := v.(*ServerMeta_AdditionalLibp2PTraceDisconnectedData); i { case 0: return &v.state case 1: @@ -18587,7 +18704,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[133].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_AdditionalLibp2PTraceIdentifyData); i { + switch v := v.(*ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData); i { case 0: return &v.state case 1: @@ -18599,7 +18716,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[134].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_AdditionalNodeRecordConsensusData); i { + switch v := v.(*ServerMeta_AdditionalLibp2PTraceIdentifyData); i { case 0: return &v.state case 1: @@ -18611,7 +18728,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[135].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_AdditionalNodeRecordExecutionData); i { + switch v := v.(*ServerMeta_AdditionalNodeRecordConsensusData); i { case 0: return &v.state case 1: @@ -18623,7 +18740,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[136].Exporter = func(v any, i int) any { - switch v := v.(*ExecutionBlockMetrics_StateReads); i { + switch v := v.(*ServerMeta_AdditionalNodeRecordExecutionData); i { case 0: return &v.state case 1: @@ -18635,7 +18752,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[137].Exporter = func(v any, i int) any { - switch v := v.(*ExecutionBlockMetrics_StateWrites); i { + switch v := v.(*ExecutionBlockMetrics_StateReads); i { case 0: return &v.state case 1: @@ -18647,7 +18764,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[138].Exporter = func(v any, i int) any { - switch v := v.(*ExecutionBlockMetrics_CacheEntry); i { + switch v := v.(*ExecutionBlockMetrics_StateWrites); i { case 0: return &v.state case 1: @@ -18659,6 +18776,18 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[139].Exporter = func(v any, i int) any { + switch v := v.(*ExecutionBlockMetrics_CacheEntry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_xatu_event_ingester_proto_msgTypes[140].Exporter = func(v any, i int) any { switch v := v.(*ExecutionBlockMetrics_CodeCacheEntry); i { case 0: return &v.state @@ -18753,6 +18882,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { (*ClientMeta_EthV1BeaconSyncCommittee)(nil), (*ClientMeta_EthV2BeaconBlockSyncAggregate)(nil), (*ClientMeta_Libp2PTraceIdentify)(nil), + (*ClientMeta_EthV2BeaconBlockAccessList)(nil), } file_pkg_proto_xatu_event_ingester_proto_msgTypes[23].OneofWrappers = []any{ (*ServerMeta_BEACON_P2P_ATTESTATION)(nil), @@ -18850,6 +18980,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { (*DecoratedEvent_EthV1BeaconSyncCommittee)(nil), (*DecoratedEvent_EthV2BeaconBlockSyncAggregate)(nil), (*DecoratedEvent_ExecutionBlockMetrics)(nil), + (*DecoratedEvent_EthV2BeaconBlockAccessList)(nil), } type x struct{} out := protoimpl.TypeBuilder{ @@ -18857,7 +18988,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pkg_proto_xatu_event_ingester_proto_rawDesc, NumEnums: 2, - NumMessages: 140, + NumMessages: 141, NumExtensions: 0, NumServices: 1, }, diff --git a/pkg/proto/xatu/event_ingester.proto b/pkg/proto/xatu/event_ingester.proto index 2729fe80a..622d78c18 100644 --- a/pkg/proto/xatu/event_ingester.proto +++ b/pkg/proto/xatu/event_ingester.proto @@ -19,6 +19,7 @@ import "pkg/proto/eth/v1/beacon_block.proto"; import "pkg/proto/eth/v1/execution_engine.proto"; import "pkg/proto/eth/v1/validator.proto"; import "pkg/proto/eth/v1/sync_committee.proto"; +import "pkg/proto/eth/v1/block_access_list.proto"; import "pkg/proto/mevrelay/bids.proto"; import "pkg/proto/mevrelay/relay.proto"; @@ -916,6 +917,14 @@ message ClientMeta { BlockIdentifier block = 1; } + // AdditionalEthV2BeaconBlockAccessListData contains additional data on + // block access list entries derived from beacon blocks. + message AdditionalEthV2BeaconBlockAccessListData { + // Block contains the information about the block that we are deriving the + // access list from. + BlockIdentifier block = 1; + } + // AdditionalBlockprintBlockClassificationData was removed — blockprint is deprecated. message AttestationDataSnapshot { @@ -1763,6 +1772,9 @@ message ClientMeta { // AdditionalEthV2BeaconBlockSyncAggregateData contains additional data about the sync aggregate. AdditionalEthV2BeaconBlockSyncAggregateData eth_v2_beacon_block_sync_aggregate = 93 [ json_name = "BEACON_API_ETH_V2_BEACON_BLOCK_SYNC_AGGREGATE" ]; AdditionalLibP2PTraceIdentifyData libp2p_trace_identify = 94 [ json_name = "LIBP2P_TRACE_IDENTIFY" ]; + // AdditionalEthV2BeaconBlockAccessListData contains additional data on + // block access list entries derived from beacon blocks. + AdditionalEthV2BeaconBlockAccessListData eth_v2_beacon_block_access_list = 95 [ json_name = "BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST" ]; } // ModuleName contains the name of the module that sent the event. @@ -1982,6 +1994,7 @@ message Event { BEACON_API_ETH_V2_BEACON_BLOCK_SYNC_AGGREGATE = 86; EXECUTION_BLOCK_METRICS = 87; LIBP2P_TRACE_IDENTIFY = 88; + BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST = 89; } // Name is the name of the event. Name name = 1; @@ -2289,6 +2302,8 @@ message DecoratedEvent { [ json_name = "BEACON_API_ETH_V2_BEACON_BLOCK_SYNC_AGGREGATE" ]; ExecutionBlockMetrics execution_block_metrics = 209 [ json_name = "EXECUTION_BLOCK_METRICS" ]; + xatu.eth.v1.BlockAccessListChange eth_v2_beacon_block_access_list = 210 + [ json_name = "BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST" ]; }; } diff --git a/pkg/sentry/beacon_blob.go b/pkg/sentry/beacon_blob.go index 066cd675e..a4f8cbf21 100644 --- a/pkg/sentry/beacon_blob.go +++ b/pkg/sentry/beacon_blob.go @@ -200,6 +200,10 @@ func extractKZGCommitments(block *spec.VersionedSignedBeaconBlock) ([]deneb.KZGC if block.Fulu != nil && block.Fulu.Message != nil && block.Fulu.Message.Body != nil { return block.Fulu.Message.Body.BlobKZGCommitments, nil } + case spec.DataVersionGloas: + // Gloas (ePBS) blocks do not have BlobKZGCommitments in the beacon block body; + // blob KZG commitments are in the ExecutionPayloadEnvelope instead. + return nil, fmt.Errorf("block version %s does not contain BlobKZGCommitments in the block body", block.Version) } return nil, fmt.Errorf("block version %s does not support KZG commitments", block.Version) diff --git a/pkg/sentry/event/beacon/eth/v2/beacon_block.go b/pkg/sentry/event/beacon/eth/v2/beacon_block.go index acf5908c7..a1cc5973e 100644 --- a/pkg/sentry/event/beacon/eth/v2/beacon_block.go +++ b/pkg/sentry/event/beacon/eth/v2/beacon_block.go @@ -218,6 +218,8 @@ func getBlockMessage(block *spec.VersionedSignedBeaconBlock) (ssz.Marshaler, err return block.Electra.Message, nil case spec.DataVersionFulu: return block.Fulu.Message, nil + case spec.DataVersionGloas: + return block.Gloas.Message, nil default: return nil, fmt.Errorf("unsupported block version: %s", block.Version) } diff --git a/pkg/sentry/event/beacon/eth/v3/proposed_validator_block.go b/pkg/sentry/event/beacon/eth/v3/proposed_validator_block.go index fa094c789..e4114472a 100644 --- a/pkg/sentry/event/beacon/eth/v3/proposed_validator_block.go +++ b/pkg/sentry/event/beacon/eth/v3/proposed_validator_block.go @@ -205,6 +205,10 @@ func (e *ValidatorBlock) getAdditionalData() (*xatu.ClientMeta_AdditionalEthV3Va } addTxData(fuluTxs) + case spec.DataVersionGloas: + // Gloas (ePBS) blocks do not have an ExecutionPayload in the beacon block body, + // so we cannot compute block size or extract transactions from VersionedProposal. + e.log.Warn("Gloas (ePBS) blocks are not supported in VersionedProposal; skipping block size and transaction data") default: e.log.WithError(err).Warn("Failed to get block message to compute block size. Missing fork version?") diff --git a/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block.go b/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block.go index 492986dc5..d4c6ed454 100644 --- a/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block.go +++ b/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block.go @@ -98,6 +98,16 @@ func (b *BeaconBlock) Filter(ctx context.Context) bool { } hash = fuluBlock.FuluBlock.StateRoot + case spec.DataVersionGloas.String(): + //nolint:staticcheck // Handled by v2 + gloasBlock, ok := data.EthV2BeaconBlock.Message.(*v2.EventBlock_GloasBlock) + if !ok { + b.log.Error("failed to cast message to GloasBlock") + + return true + } + + hash = gloasBlock.GloasBlock.StateRoot default: b.log.Error(fmt.Errorf("unknown version: %s", version)) diff --git a/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_v2.go b/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_v2.go index 8eab29dcb..ecb420b66 100644 --- a/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_v2.go +++ b/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_v2.go @@ -94,6 +94,15 @@ func (b *BeaconBlockV2) Filter(ctx context.Context) bool { } hash = fuluBlock.FuluBlock.StateRoot + case spec.DataVersionGloas.String(): + gloasBlock, ok := data.EthV2BeaconBlockV2.Message.(*v2.EventBlockV2_GloasBlock) + if !ok { + b.log.Error("failed to cast message to GloasBlock") + + return true + } + + hash = gloasBlock.GloasBlock.StateRoot default: b.log.Error(fmt.Errorf("unknown version: %s", version)) From 33b3fc79f646de87a6cce81aa0f2843273a00b70 Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Mon, 23 Mar 2026 09:39:09 +1000 Subject: [PATCH 02/23] feat(go.mod): update go-eth2-client dependency to include Gloas/EIP-7928 support fix(proto): implement proper handling of Gloas beacon blocks and their fields refactor(block_access_list.go): add functionality to decode and process block access list data from Gloas blocks fix(execution_transaction.go): adjust processing logic to handle transactions in Gloas blocks fix(beacon_blob.go): modify kzg commitments extraction for Gloas blocks to ensure proper retrieval fix(proposed_validator_block.go): update logic to correctly compute Gloas block size and handle transactions --- go.mod | 4 +- go.sum | 4 +- .../beacon/eth/v2/block_access_list.go | 153 +++++++++++++++++- .../beacon/eth/v2/execution_transaction.go | 9 +- pkg/proto/eth/block.go | 35 +++- pkg/proto/eth/v1/conversion.go | 66 ++++++++ pkg/sentry/beacon_blob.go | 6 +- .../beacon/eth/v3/proposed_validator_block.go | 14 +- 8 files changed, 263 insertions(+), 28 deletions(-) diff --git a/go.mod b/go.mod index 54eebbe4b..f10ae03d3 100644 --- a/go.mod +++ b/go.mod @@ -7,8 +7,8 @@ go 1.25.7 // Match tysm's tablewriter version requirement replace github.com/olekukonko/tablewriter => github.com/olekukonko/tablewriter v0.0.5 -// Use pk910's BALs branch for Gloas/EIP-7928 support -replace github.com/attestantio/go-eth2-client => github.com/pk910/go-eth2-client v0.0.0-20260120171638-6be3bd0765ca +// Use pk910's BALs branch for Gloas/EIP-7928 support (PR #7) +replace github.com/attestantio/go-eth2-client => github.com/pk910/go-eth2-client v0.0.0-20260211135810-4d8cc413fd3b require ( github.com/ClickHouse/ch-go v0.71.0 diff --git a/go.sum b/go.sum index 0f9b356a5..2b9169d80 100644 --- a/go.sum +++ b/go.sum @@ -633,8 +633,8 @@ github.com/pion/webrtc/v4 v4.1.2 h1:mpuUo/EJ1zMNKGE79fAdYNFZBX790KE7kQQpLMjjR54= github.com/pion/webrtc/v4 v4.1.2/go.mod h1:xsCXiNAmMEjIdFxAYU0MbB3RwRieJsegSB2JZsGN+8U= github.com/pk910/dynamic-ssz v0.0.6 h1:Tu97LSc2TtCyqRfoSbhG9XuR/FbA7CkKeAnlkgUydFY= github.com/pk910/dynamic-ssz v0.0.6/go.mod h1:b6CrLaB2X7pYA+OSEEbkgXDEcRnjLOZIxZTsMuO/Y9c= -github.com/pk910/go-eth2-client v0.0.0-20260120171638-6be3bd0765ca h1:ywkUO6OeLArWP+v0vVa+QA38GH+XVo3eU3f7AUU0YCs= -github.com/pk910/go-eth2-client v0.0.0-20260120171638-6be3bd0765ca/go.mod h1:1MBvz1DVe6jZduHJDJuJ/1S4LzYmDmvx+r5alo4pyrM= +github.com/pk910/go-eth2-client v0.0.0-20260211135810-4d8cc413fd3b h1:jfPN1Fg6yQzGdwRf1WEGbelmC+ciqVZw96LmFa8u7tI= +github.com/pk910/go-eth2-client v0.0.0-20260211135810-4d8cc413fd3b/go.mod h1:1MBvz1DVe6jZduHJDJuJ/1S4LzYmDmvx+r5alo4pyrM= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= diff --git a/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go b/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go index eaa6f4ef0..04d2df5af 100644 --- a/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go +++ b/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go @@ -13,10 +13,14 @@ import ( "github.com/ethpandaops/xatu/pkg/observability" xatuethv1 "github.com/ethpandaops/xatu/pkg/proto/eth/v1" "github.com/ethpandaops/xatu/pkg/proto/xatu" + "github.com/google/uuid" "github.com/pkg/errors" "github.com/sirupsen/logrus" "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/trace" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/timestamppb" + "google.golang.org/protobuf/types/known/wrapperspb" ) const ( @@ -30,10 +34,9 @@ type BlockAccessListDeriverConfig struct { } // BlockAccessListDeriver extracts block access list data from Gloas beacon blocks. -// BAL (Block Access List) is introduced in EIP-7732 (ePBS) and only exists from -// the Gloas fork onwards. The BAL data comes from the ExecutionPayloadEnvelope, -// not the beacon block body itself; the extraction logic will be filled in once -// envelope data is available. +// BAL (Block Access List) is introduced in EIP-7928 and only exists from the +// Gloas fork onwards. The BAL data is embedded in the ExecutionPayload as the +// BlockAccessList field. type BlockAccessListDeriver struct { log logrus.FieldLogger cfg *BlockAccessListDeriverConfig @@ -190,6 +193,7 @@ func (b *BlockAccessListDeriver) processEpoch( ) ([]*xatu.DecoratedEvent, error) { ctx, span := observability.Tracer().Start(ctx, "BlockAccessListDeriver.processEpoch", + //nolint:gosec // epoch value will never overflow int64 trace.WithAttributes(attribute.Int64("epoch", int64(epoch))), ) defer span.End() @@ -221,6 +225,7 @@ func (b *BlockAccessListDeriver) processSlot( ) ([]*xatu.DecoratedEvent, error) { ctx, span := observability.Tracer().Start(ctx, "BlockAccessListDeriver.processSlot", + //nolint:gosec // slot value will never overflow int64 trace.WithAttributes(attribute.Int64("slot", int64(slot))), ) defer span.End() @@ -241,10 +246,142 @@ func (b *BlockAccessListDeriver) processSlot( return []*xatu.DecoratedEvent{}, nil } - // TODO: Extract BAL data from ExecutionPayloadEnvelope once envelope - // data is available. For now, return empty events since BAL comes from - // the ExecutionPayloadEnvelope, not the beacon block body. - return []*xatu.DecoratedEvent{}, nil + if block.Gloas == nil || block.Gloas.Message == nil || + block.Gloas.Message.Body == nil || + block.Gloas.Message.Body.ExecutionPayload == nil { + return []*xatu.DecoratedEvent{}, nil + } + + blockIdentifier, err := GetBlockIdentifier( + block, b.beacon.Metadata().Wallclock(), + ) + if err != nil { + return nil, errors.Wrapf(err, + "failed to get block identifier for slot %d", slot) + } + + // Decode the BAL from the ExecutionPayload + bal := xatuethv1.NewBlockAccessListFromGloas( + block.Gloas.Message.Body.ExecutionPayload.BlockAccessList, + ) + + if bal == nil || len(bal.GetEntries()) == 0 { + return []*xatu.DecoratedEvent{}, nil + } + + events := make([]*xatu.DecoratedEvent, 0) + + // Iterate over entries and their changes, creating one event per change + for _, entry := range bal.GetEntries() { + address := entry.GetAddress() + + for _, sc := range entry.GetStorageChanges() { + change := &xatuethv1.BlockAccessListChange{ + Address: address, + ChangeType: "storage", + BlockAccessIndex: sc.GetBlockAccessIndex(), + StorageKey: sc.GetKey(), + NewValue: sc.GetNewValue(), + } + + event, err := b.createEvent(ctx, change, blockIdentifier) + if err != nil { + return nil, errors.Wrap(err, "failed to create storage change event") + } + + events = append(events, event) + } + + for _, bc := range entry.GetBalanceChanges() { + change := &xatuethv1.BlockAccessListChange{ + Address: address, + ChangeType: "balance", + BlockAccessIndex: bc.GetBlockAccessIndex(), + NewValue: bc.GetPostBalance(), + } + + event, err := b.createEvent(ctx, change, blockIdentifier) + if err != nil { + return nil, errors.Wrap(err, "failed to create balance change event") + } + + events = append(events, event) + } + + for _, nc := range entry.GetNonceChanges() { + var newValue *wrapperspb.StringValue + if nc.GetNewNonce() != nil { + newValue = &wrapperspb.StringValue{ + Value: fmt.Sprintf("%d", nc.GetNewNonce().GetValue()), + } + } + + change := &xatuethv1.BlockAccessListChange{ + Address: address, + ChangeType: "nonce", + BlockAccessIndex: nc.GetBlockAccessIndex(), + NewValue: newValue, + } + + event, err := b.createEvent(ctx, change, blockIdentifier) + if err != nil { + return nil, errors.Wrap(err, "failed to create nonce change event") + } + + events = append(events, event) + } + + for _, cc := range entry.GetCodeChanges() { + change := &xatuethv1.BlockAccessListChange{ + Address: address, + ChangeType: "code", + BlockAccessIndex: cc.GetBlockAccessIndex(), + NewValue: cc.GetNewCode(), + } + + event, err := b.createEvent(ctx, change, blockIdentifier) + if err != nil { + return nil, errors.Wrap(err, "failed to create code change event") + } + + events = append(events, event) + } + } + + return events, nil +} + +func (b *BlockAccessListDeriver) createEvent( + ctx context.Context, + change *xatuethv1.BlockAccessListChange, + blockIdentifier *xatu.BlockIdentifier, +) (*xatu.DecoratedEvent, error) { + metadata, ok := proto.Clone(b.clientMeta).(*xatu.ClientMeta) + if !ok { + return nil, errors.New("failed to clone client metadata") + } + + decoratedEvent := &xatu.DecoratedEvent{ + Event: &xatu.Event{ + Name: xatu.Event_BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST, + DateTime: timestamppb.New(time.Now()), + Id: uuid.New().String(), + }, + Meta: &xatu.Meta{ + Client: metadata, + }, + Data: &xatu.DecoratedEvent_EthV2BeaconBlockAccessList{ + EthV2BeaconBlockAccessList: change, + }, + } + + decoratedEvent.Meta.Client.AdditionalData = &xatu.ClientMeta_EthV2BeaconBlockAccessList{ + EthV2BeaconBlockAccessList: &xatu.ClientMeta_AdditionalEthV2BeaconBlockAccessListData{ + Block: blockIdentifier, + }, + } + + return decoratedEvent, nil } // lookAhead attempts to pre-load any blocks that might be required for diff --git a/pkg/cannon/deriver/beacon/eth/v2/execution_transaction.go b/pkg/cannon/deriver/beacon/eth/v2/execution_transaction.go index 2073a494e..67f5d206c 100644 --- a/pkg/cannon/deriver/beacon/eth/v2/execution_transaction.go +++ b/pkg/cannon/deriver/beacon/eth/v2/execution_transaction.go @@ -238,12 +238,6 @@ func (b *ExecutionTransactionDeriver) processSlot(ctx context.Context, slot phas return []*xatu.DecoratedEvent{}, nil } - // Gloas (EIP-7732 ePBS) blocks do not contain an ExecutionPayload in the - // beacon block body, so there are no transactions to extract. - if block.Version == spec.DataVersionGloas { - return []*xatu.DecoratedEvent{}, nil - } - blockIdentifier, err := GetBlockIdentifier(block, b.beacon.Metadata().Wallclock()) if err != nil { return nil, errors.Wrapf(err, "failed to get block identifier for slot %d", slot) @@ -450,6 +444,9 @@ func GetGasPrice(block *spec.VersionedSignedBeaconBlock, transaction *types.Tran case spec.DataVersionFulu: executionPayload := block.Fulu.Message.Body.ExecutionPayload baseFee.SetBytes(executionPayload.BaseFeePerGas.Bytes()) + case spec.DataVersionGloas: + executionPayload := block.Gloas.Message.Body.ExecutionPayload + baseFee.SetBytes(executionPayload.BaseFeePerGas.Bytes()) default: return nil, fmt.Errorf("unknown block version: %d", block.Version) } diff --git a/pkg/proto/eth/block.go b/pkg/proto/eth/block.go index 04a33b1aa..0f8afdb31 100644 --- a/pkg/proto/eth/block.go +++ b/pkg/proto/eth/block.go @@ -37,7 +37,7 @@ func NewEventBlockV2FromVersionedProposal(proposal *api.VersionedProposal) (*v2. case spec.DataVersionFulu: data = NewEventBlockFromFulu(proposal.Fulu.Block, nil) case spec.DataVersionGloas: - return nil, fmt.Errorf("gloas proposals not yet supported in go-eth2-client") + data = NewEventBlockFromGloas(proposal.Gloas, nil) default: return nil, fmt.Errorf("unsupported block version: %v", proposal.Version) } @@ -462,10 +462,14 @@ func NewEventBlockFromFulu(block *electra.BeaconBlock, signature *phase0.BLSSign return event } -// NewEventBlockFromGloas creates an EventBlockV2 from a Gloas (EIP-7732 ePBS) beacon block. -// Gloas blocks use SignedExecutionPayloadBid instead of a direct ExecutionPayload, -// so the execution payload fields are left unpopulated in the proto. +// NewEventBlockFromGloas creates an EventBlockV2 from a Gloas (EIP-7928) beacon block. func NewEventBlockFromGloas(block *gloas.BeaconBlock, signature *phase0.BLSSignature) *v2.EventBlockV2 { + kzgCommitments := make([]string, 0, len(block.Body.BlobKZGCommitments)) + + for _, commitment := range block.Body.BlobKZGCommitments { + kzgCommitments = append(kzgCommitments, commitment.String()) + } + event := &v2.EventBlockV2{ Version: v2.BlockVersion_GLOAS, Message: &v2.EventBlockV2_GloasBlock{ @@ -491,7 +495,30 @@ func NewEventBlockFromGloas(block *gloas.BeaconBlock, signature *phase0.BLSSigna SyncCommitteeBits: fmt.Sprintf("0x%x", block.Body.SyncAggregate.SyncCommitteeBits), SyncCommitteeSignature: block.Body.SyncAggregate.SyncCommitteeSignature.String(), }, + ExecutionPayload: &v1.ExecutionPayloadGloas{ + ParentHash: block.Body.ExecutionPayload.ParentHash.String(), + FeeRecipient: block.Body.ExecutionPayload.FeeRecipient.String(), + StateRoot: fmt.Sprintf("0x%x", block.Body.ExecutionPayload.StateRoot[:]), + ReceiptsRoot: fmt.Sprintf("0x%x", block.Body.ExecutionPayload.ReceiptsRoot[:]), + LogsBloom: fmt.Sprintf("0x%x", block.Body.ExecutionPayload.LogsBloom[:]), + PrevRandao: fmt.Sprintf("0x%x", block.Body.ExecutionPayload.PrevRandao[:]), + BlockNumber: &wrapperspb.UInt64Value{Value: block.Body.ExecutionPayload.BlockNumber}, + GasLimit: &wrapperspb.UInt64Value{Value: block.Body.ExecutionPayload.GasLimit}, + GasUsed: &wrapperspb.UInt64Value{Value: block.Body.ExecutionPayload.GasUsed}, + Timestamp: &wrapperspb.UInt64Value{Value: block.Body.ExecutionPayload.Timestamp}, + ExtraData: fmt.Sprintf("0x%x", block.Body.ExecutionPayload.ExtraData), + BaseFeePerGas: block.Body.ExecutionPayload.BaseFeePerGas.String(), + BlockHash: block.Body.ExecutionPayload.BlockHash.String(), + Transactions: getTransactions(block.Body.ExecutionPayload.Transactions), + Withdrawals: v1.NewWithdrawalsFromCapella(block.Body.ExecutionPayload.Withdrawals), + BlobGasUsed: &wrapperspb.UInt64Value{Value: block.Body.ExecutionPayload.BlobGasUsed}, + ExcessBlobGas: &wrapperspb.UInt64Value{Value: block.Body.ExecutionPayload.ExcessBlobGas}, + BlockAccessList: v1.NewBlockAccessListFromGloas(block.Body.ExecutionPayload.BlockAccessList), + SlotNumber: &wrapperspb.UInt64Value{Value: block.Body.ExecutionPayload.SlotNumber}, + }, BlsToExecutionChanges: v2.NewBLSToExecutionChangesFromCapella(block.Body.BLSToExecutionChanges), + BlobKzgCommitments: kzgCommitments, + ExecutionRequests: v1.NewElectraExecutionRequestsFromElectra(block.Body.ExecutionRequests), }, }, }, diff --git a/pkg/proto/eth/v1/conversion.go b/pkg/proto/eth/v1/conversion.go index ea03d2b74..a25d779b5 100644 --- a/pkg/proto/eth/v1/conversion.go +++ b/pkg/proto/eth/v1/conversion.go @@ -7,7 +7,11 @@ import ( "github.com/attestantio/go-eth2-client/spec/capella" "github.com/attestantio/go-eth2-client/spec/deneb" "github.com/attestantio/go-eth2-client/spec/electra" + "github.com/attestantio/go-eth2-client/spec/gloas" "github.com/attestantio/go-eth2-client/spec/phase0" + "github.com/ethereum/go-ethereum/core/types/bal" + "github.com/ethereum/go-ethereum/rlp" + "github.com/holiman/uint256" wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" ) @@ -359,3 +363,65 @@ func NewElectraExecutionRequestsFromElectra(data *electra.ExecutionRequests) *El return requests } + +// NewBlockAccessListFromGloas decodes a raw RLP-encoded block access list +// (EIP-7928) into the structured proto representation. +func NewBlockAccessListFromGloas(rawBAL gloas.BlockAccessList) *BlockAccessList { + if len(rawBAL) == 0 { + return &BlockAccessList{} + } + + var decoded bal.BlockAccessList + if err := rlp.DecodeBytes(rawBAL, &decoded); err != nil { + return &BlockAccessList{} + } + + entries := make([]*BlockAccessListEntry, 0, len(decoded.Accesses)) + + for i := range decoded.Accesses { + access := &decoded.Accesses[i] + entry := &BlockAccessListEntry{ + Address: &wrapperspb.StringValue{Value: fmt.Sprintf("0x%x", access.Address)}, + } + + // Storage changes: each slot has multiple writes keyed by tx index + for _, slotWrite := range access.StorageWrites { + for _, write := range slotWrite.Accesses { + entry.StorageChanges = append(entry.StorageChanges, &BlockAccessListStorageChange{ + BlockAccessIndex: &wrapperspb.UInt32Value{Value: uint32(write.TxIdx)}, + Key: &wrapperspb.StringValue{Value: fmt.Sprintf("0x%x", slotWrite.Slot)}, + NewValue: &wrapperspb.StringValue{Value: fmt.Sprintf("0x%x", write.ValueAfter)}, + }) + } + } + + // Balance changes + for _, change := range access.BalanceChanges { + postBalance := new(uint256.Int).SetBytes(change.Balance[:]) + entry.BalanceChanges = append(entry.BalanceChanges, &BlockAccessListBalanceChange{ + BlockAccessIndex: &wrapperspb.UInt32Value{Value: uint32(change.TxIdx)}, + PostBalance: &wrapperspb.StringValue{Value: postBalance.String()}, + }) + } + + // Nonce changes + for _, change := range access.NonceChanges { + entry.NonceChanges = append(entry.NonceChanges, &BlockAccessListNonceChange{ + BlockAccessIndex: &wrapperspb.UInt32Value{Value: uint32(change.TxIdx)}, + NewNonce: &wrapperspb.UInt64Value{Value: change.Nonce}, + }) + } + + // Code changes + for _, code := range access.Code { + entry.CodeChanges = append(entry.CodeChanges, &BlockAccessListCodeChange{ + BlockAccessIndex: &wrapperspb.UInt32Value{Value: uint32(code.TxIndex)}, + NewCode: &wrapperspb.StringValue{Value: fmt.Sprintf("0x%x", code.Code)}, + }) + } + + entries = append(entries, entry) + } + + return &BlockAccessList{Entries: entries} +} diff --git a/pkg/sentry/beacon_blob.go b/pkg/sentry/beacon_blob.go index a4f8cbf21..47d161bcd 100644 --- a/pkg/sentry/beacon_blob.go +++ b/pkg/sentry/beacon_blob.go @@ -201,9 +201,9 @@ func extractKZGCommitments(block *spec.VersionedSignedBeaconBlock) ([]deneb.KZGC return block.Fulu.Message.Body.BlobKZGCommitments, nil } case spec.DataVersionGloas: - // Gloas (ePBS) blocks do not have BlobKZGCommitments in the beacon block body; - // blob KZG commitments are in the ExecutionPayloadEnvelope instead. - return nil, fmt.Errorf("block version %s does not contain BlobKZGCommitments in the block body", block.Version) + if block.Gloas != nil && block.Gloas.Message != nil && block.Gloas.Message.Body != nil { + return block.Gloas.Message.Body.BlobKZGCommitments, nil + } } return nil, fmt.Errorf("block version %s does not support KZG commitments", block.Version) diff --git a/pkg/sentry/event/beacon/eth/v3/proposed_validator_block.go b/pkg/sentry/event/beacon/eth/v3/proposed_validator_block.go index e4114472a..082d42792 100644 --- a/pkg/sentry/event/beacon/eth/v3/proposed_validator_block.go +++ b/pkg/sentry/event/beacon/eth/v3/proposed_validator_block.go @@ -206,9 +206,17 @@ func (e *ValidatorBlock) getAdditionalData() (*xatu.ClientMeta_AdditionalEthV3Va addTxData(fuluTxs) case spec.DataVersionGloas: - // Gloas (ePBS) blocks do not have an ExecutionPayload in the beacon block body, - // so we cannot compute block size or extract transactions from VersionedProposal. - e.log.Warn("Gloas (ePBS) blocks are not supported in VersionedProposal; skipping block size and transaction data") + totalBytes, totalBytesCompressed, err = computeBlockSize(e.event.Gloas.Body) + if err != nil { + e.log.WithError(err).Warn("Failed to compute gloas block size") + } + + gloasTxs := make([][]byte, len(e.event.Gloas.Body.ExecutionPayload.Transactions)) + for i, tx := range e.event.Gloas.Body.ExecutionPayload.Transactions { + gloasTxs[i] = tx + } + + addTxData(gloasTxs) default: e.log.WithError(err).Warn("Failed to get block message to compute block size. Missing fork version?") From e7896aef306306c3f9946e0c343e7068eaf6ecd4 Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Mon, 23 Mar 2026 09:57:55 +1000 Subject: [PATCH 03/23] feat(beacon): add ExecutionPayloadSlotNumber to beacon block batch feat(canonical): add ExecutionPayloadSlotNumber to canonical block batch fix(beacon): update GloasBlock message retrieval to use GetMessage method fix(event-ingester): fix casting of GloasBlock message to use GetMessage method test: add tests for BlockAccessList related functionalities style: reorder imports for clarity in conversion test file chore: refactor existing append functions to include ExecutionPayloadSlotNumber handling --- .../beacon_api_eth_v2_beacon_block.gen.go | 9 + .../beacon/beacon_api_eth_v2_beacon_block.go | 73 +++++++- .../canonical/canonical_beacon_block.gen.go | 9 + .../route/canonical/canonical_beacon_block.go | 72 +++++++- ...canonical_beacon_block_access_list_test.go | 77 ++++++++ pkg/proto/eth/v1/conversion_test.go | 168 +++++++++++++++++- .../event/beacon/eth/v2/beacon_block.go | 4 +- .../event/beacon/eth/v2/beacon_block_v2.go | 4 +- 8 files changed, 401 insertions(+), 15 deletions(-) create mode 100644 pkg/consumoor/route/canonical/canonical_beacon_block_access_list_test.go diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.gen.go b/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.gen.go index 14e8ffede..bd1806f42 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.gen.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.gen.go @@ -34,6 +34,7 @@ type beaconApiEthV2BeaconBlockBatch struct { ExecutionPayloadBaseFeePerGas *proto.ColNullable[proto.UInt128] ExecutionPayloadBlobGasUsed *proto.ColNullable[uint64] ExecutionPayloadExcessBlobGas *proto.ColNullable[uint64] + ExecutionPayloadSlotNumber *proto.ColNullable[uint64] ExecutionPayloadGasLimit *proto.ColNullable[uint64] ExecutionPayloadGasUsed *proto.ColNullable[uint64] ExecutionPayloadStateRoot route.SafeColFixedStr @@ -80,6 +81,7 @@ func newbeaconApiEthV2BeaconBlockBatch() *beaconApiEthV2BeaconBlockBatch { ExecutionPayloadBaseFeePerGas: new(proto.ColUInt128).Nullable(), ExecutionPayloadBlobGasUsed: new(proto.ColUInt64).Nullable(), ExecutionPayloadExcessBlobGas: new(proto.ColUInt64).Nullable(), + ExecutionPayloadSlotNumber: new(proto.ColUInt64).Nullable(), ExecutionPayloadGasLimit: new(proto.ColUInt64).Nullable(), ExecutionPayloadGasUsed: new(proto.ColUInt64).Nullable(), ExecutionPayloadStateRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), @@ -178,6 +180,7 @@ func (b *beaconApiEthV2BeaconBlockBatch) Input() proto.Input { {Name: "execution_payload_base_fee_per_gas", Data: b.ExecutionPayloadBaseFeePerGas}, {Name: "execution_payload_blob_gas_used", Data: b.ExecutionPayloadBlobGasUsed}, {Name: "execution_payload_excess_blob_gas", Data: b.ExecutionPayloadExcessBlobGas}, + {Name: "execution_payload_slot_number", Data: b.ExecutionPayloadSlotNumber}, {Name: "execution_payload_gas_limit", Data: b.ExecutionPayloadGasLimit}, {Name: "execution_payload_gas_used", Data: b.ExecutionPayloadGasUsed}, {Name: "execution_payload_state_root", Data: &b.ExecutionPayloadStateRoot}, @@ -232,6 +235,7 @@ func (b *beaconApiEthV2BeaconBlockBatch) Reset() { b.ExecutionPayloadBaseFeePerGas.Reset() b.ExecutionPayloadBlobGasUsed.Reset() b.ExecutionPayloadExcessBlobGas.Reset() + b.ExecutionPayloadSlotNumber.Reset() b.ExecutionPayloadGasLimit.Reset() b.ExecutionPayloadGasUsed.Reset() b.ExecutionPayloadStateRoot.Reset() @@ -311,6 +315,11 @@ func (b *beaconApiEthV2BeaconBlockBatch) Snapshot() []map[string]any { } else { row["execution_payload_excess_blob_gas"] = nil } + if v := b.ExecutionPayloadSlotNumber.Row(i); v.Set { + row["execution_payload_slot_number"] = v.Value + } else { + row["execution_payload_slot_number"] = nil + } if v := b.ExecutionPayloadGasLimit.Row(i); v.Set { row["execution_payload_gas_limit"] = v.Value } else { diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go b/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go index 5b455cd37..1e76853ab 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go @@ -269,11 +269,7 @@ func (b *beaconApiEthV2BeaconBlockBatch) appendPayloadFromEventBlockV2( body := gloasBlock.GetBody() b.appendEth1Data(body.GetEth1Data()) - // Gloas (EIP-7732 ePBS) does not carry an ExecutionPayload in the - // beacon block body; it arrives via a separate ExecutionPayloadEnvelope. - b.appendNoExecutionPayload() - - return nil + return b.appendExecutionPayloadGloas(body.GetExecutionPayload()) } // Unknown block type: append zero values. @@ -306,6 +302,7 @@ func (b *beaconApiEthV2BeaconBlockBatch) appendNoExecutionPayload() { b.ExecutionPayloadBaseFeePerGas.Append(proto.Nullable[proto.UInt128]{}) b.ExecutionPayloadBlobGasUsed.Append(proto.Nullable[uint64]{}) b.ExecutionPayloadExcessBlobGas.Append(proto.Nullable[uint64]{}) + b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) b.ExecutionPayloadGasLimit.Append(proto.Nullable[uint64]{}) b.ExecutionPayloadGasUsed.Append(proto.Nullable[uint64]{}) b.ExecutionPayloadStateRoot.Append(nil) @@ -353,6 +350,7 @@ func (b *beaconApiEthV2BeaconBlockBatch) appendExecutionPayloadV2( b.ExecutionPayloadBlobGasUsed.Append(proto.Nullable[uint64]{}) b.ExecutionPayloadExcessBlobGas.Append(proto.Nullable[uint64]{}) + b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) return nil } @@ -398,6 +396,7 @@ func (b *beaconApiEthV2BeaconBlockBatch) appendExecutionPayloadCapellaV2( b.ExecutionPayloadBlobGasUsed.Append(proto.Nullable[uint64]{}) b.ExecutionPayloadExcessBlobGas.Append(proto.Nullable[uint64]{}) + b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) return nil } @@ -453,6 +452,8 @@ func (b *beaconApiEthV2BeaconBlockBatch) appendExecutionPayloadDeneb( b.ExecutionPayloadGasUsed.Append(proto.Nullable[uint64]{}) } + b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) + return nil } @@ -507,6 +508,68 @@ func (b *beaconApiEthV2BeaconBlockBatch) appendExecutionPayloadElectra( b.ExecutionPayloadGasUsed.Append(proto.Nullable[uint64]{}) } + b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) + + return nil +} + +func (b *beaconApiEthV2BeaconBlockBatch) appendExecutionPayloadGloas( + payload *ethv1.ExecutionPayloadGloas, +) error { + if payload == nil { + b.appendNoExecutionPayload() + + return nil + } + + baseFeePerGas, err := route.ParseUInt128(payload.GetBaseFeePerGas()) + if err != nil { + b.ExecutionPayloadBaseFeePerGas.Append(proto.Nullable[proto.UInt128]{}) + } else { + b.ExecutionPayloadBaseFeePerGas.Append(proto.NewNullable[proto.UInt128](baseFeePerGas)) + } + + b.ExecutionPayloadBlockHash.Append([]byte(payload.GetBlockHash())) + b.ExecutionPayloadFeeRecipient.Append(payload.GetFeeRecipient()) + b.ExecutionPayloadStateRoot.Append([]byte(payload.GetStateRoot())) + b.ExecutionPayloadParentHash.Append([]byte(payload.GetParentHash())) + + if blockNumber := payload.GetBlockNumber(); blockNumber != nil { + b.ExecutionPayloadBlockNumber.Append(uint32(blockNumber.GetValue())) //nolint:gosec // block number fits uint32 + } else { + b.ExecutionPayloadBlockNumber.Append(0) + } + + if blobGasUsed := payload.GetBlobGasUsed(); blobGasUsed != nil { + b.ExecutionPayloadBlobGasUsed.Append(proto.NewNullable[uint64](blobGasUsed.GetValue())) + } else { + b.ExecutionPayloadBlobGasUsed.Append(proto.Nullable[uint64]{}) + } + + if excessBlobGas := payload.GetExcessBlobGas(); excessBlobGas != nil { + b.ExecutionPayloadExcessBlobGas.Append(proto.NewNullable[uint64](excessBlobGas.GetValue())) + } else { + b.ExecutionPayloadExcessBlobGas.Append(proto.Nullable[uint64]{}) + } + + if slotNumber := payload.GetSlotNumber(); slotNumber != nil { + b.ExecutionPayloadSlotNumber.Append(proto.NewNullable[uint64](slotNumber.GetValue())) + } else { + b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) + } + + if gasLimit := payload.GetGasLimit(); gasLimit != nil { + b.ExecutionPayloadGasLimit.Append(proto.NewNullable[uint64](gasLimit.GetValue())) + } else { + b.ExecutionPayloadGasLimit.Append(proto.Nullable[uint64]{}) + } + + if gasUsed := payload.GetGasUsed(); gasUsed != nil { + b.ExecutionPayloadGasUsed.Append(proto.NewNullable[uint64](gasUsed.GetValue())) + } else { + b.ExecutionPayloadGasUsed.Append(proto.Nullable[uint64]{}) + } + return nil } diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block.gen.go b/pkg/consumoor/route/canonical/canonical_beacon_block.gen.go index 421b8281c..bd047acc0 100644 --- a/pkg/consumoor/route/canonical/canonical_beacon_block.gen.go +++ b/pkg/consumoor/route/canonical/canonical_beacon_block.gen.go @@ -33,6 +33,7 @@ type canonicalBeaconBlockBatch struct { ExecutionPayloadBaseFeePerGas *proto.ColNullable[proto.UInt128] ExecutionPayloadBlobGasUsed *proto.ColNullable[uint64] ExecutionPayloadExcessBlobGas *proto.ColNullable[uint64] + ExecutionPayloadSlotNumber *proto.ColNullable[uint64] ExecutionPayloadGasLimit *proto.ColNullable[uint64] ExecutionPayloadGasUsed *proto.ColNullable[uint64] ExecutionPayloadStateRoot *proto.ColNullable[[]byte] @@ -80,6 +81,7 @@ func newcanonicalBeaconBlockBatch() *canonicalBeaconBlockBatch { ExecutionPayloadBaseFeePerGas: new(proto.ColUInt128).Nullable(), ExecutionPayloadBlobGasUsed: new(proto.ColUInt64).Nullable(), ExecutionPayloadExcessBlobGas: new(proto.ColUInt64).Nullable(), + ExecutionPayloadSlotNumber: new(proto.ColUInt64).Nullable(), ExecutionPayloadGasLimit: new(proto.ColUInt64).Nullable(), ExecutionPayloadGasUsed: new(proto.ColUInt64).Nullable(), ExecutionPayloadStateRoot: route.NewNullableFixedStr(66), @@ -177,6 +179,7 @@ func (b *canonicalBeaconBlockBatch) Input() proto.Input { {Name: "execution_payload_base_fee_per_gas", Data: b.ExecutionPayloadBaseFeePerGas}, {Name: "execution_payload_blob_gas_used", Data: b.ExecutionPayloadBlobGasUsed}, {Name: "execution_payload_excess_blob_gas", Data: b.ExecutionPayloadExcessBlobGas}, + {Name: "execution_payload_slot_number", Data: b.ExecutionPayloadSlotNumber}, {Name: "execution_payload_gas_limit", Data: b.ExecutionPayloadGasLimit}, {Name: "execution_payload_gas_used", Data: b.ExecutionPayloadGasUsed}, {Name: "execution_payload_state_root", Data: b.ExecutionPayloadStateRoot}, @@ -230,6 +233,7 @@ func (b *canonicalBeaconBlockBatch) Reset() { b.ExecutionPayloadBaseFeePerGas.Reset() b.ExecutionPayloadBlobGasUsed.Reset() b.ExecutionPayloadExcessBlobGas.Reset() + b.ExecutionPayloadSlotNumber.Reset() b.ExecutionPayloadGasLimit.Reset() b.ExecutionPayloadGasUsed.Reset() b.ExecutionPayloadStateRoot.Reset() @@ -320,6 +324,11 @@ func (b *canonicalBeaconBlockBatch) Snapshot() []map[string]any { } else { row["execution_payload_excess_blob_gas"] = nil } + if v := b.ExecutionPayloadSlotNumber.Row(i); v.Set { + row["execution_payload_slot_number"] = v.Value + } else { + row["execution_payload_slot_number"] = nil + } if v := b.ExecutionPayloadGasLimit.Row(i); v.Set { row["execution_payload_gas_limit"] = v.Value } else { diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block.go b/pkg/consumoor/route/canonical/canonical_beacon_block.go index 3d639c0a1..66b4fddb7 100644 --- a/pkg/consumoor/route/canonical/canonical_beacon_block.go +++ b/pkg/consumoor/route/canonical/canonical_beacon_block.go @@ -260,11 +260,7 @@ func (b *canonicalBeaconBlockBatch) appendPayloadFromEventBlockV2(eventBlock *et body := gloasBlock.GetBody() b.appendEth1Data(body.GetEth1Data()) - // Gloas (EIP-7732 ePBS) does not carry an ExecutionPayload in the - // beacon block body; it arrives via a separate ExecutionPayloadEnvelope. - b.appendNullExecutionPayload() - - return nil + return b.appendExecutionPayloadGloas(body.GetExecutionPayload()) } // Unknown block version - append zeros. @@ -297,6 +293,7 @@ func (b *canonicalBeaconBlockBatch) appendNullExecutionPayload() { b.ExecutionPayloadFeeRecipient.Append(proto.Nullable[string]{}) b.ExecutionPayloadBaseFeePerGas.Append(proto.Nullable[proto.UInt128]{}) b.ExecutionPayloadBlobGasUsed.Append(proto.Nullable[uint64]{}) + b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) b.ExecutionPayloadExcessBlobGas.Append(proto.Nullable[uint64]{}) b.ExecutionPayloadGasLimit.Append(proto.Nullable[uint64]{}) b.ExecutionPayloadGasUsed.Append(proto.Nullable[uint64]{}) @@ -344,6 +341,7 @@ func (b *canonicalBeaconBlockBatch) appendExecutionPayloadV2(payload *ethv1.Exec b.ExecutionPayloadBlobGasUsed.Append(proto.Nullable[uint64]{}) b.ExecutionPayloadExcessBlobGas.Append(proto.Nullable[uint64]{}) + b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) return nil } @@ -388,6 +386,7 @@ func (b *canonicalBeaconBlockBatch) appendExecutionPayloadCapellaV2(payload *eth b.ExecutionPayloadBlobGasUsed.Append(proto.Nullable[uint64]{}) b.ExecutionPayloadExcessBlobGas.Append(proto.Nullable[uint64]{}) + b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) return nil } @@ -442,6 +441,8 @@ func (b *canonicalBeaconBlockBatch) appendExecutionPayloadDeneb(payload *ethv1.E b.ExecutionPayloadGasUsed.Append(proto.Nullable[uint64]{}) } + b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) + return nil } @@ -495,6 +496,67 @@ func (b *canonicalBeaconBlockBatch) appendExecutionPayloadElectra(payload *ethv1 b.ExecutionPayloadGasUsed.Append(proto.Nullable[uint64]{}) } + b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) + + return nil +} + +//nolint:gosec // G115 +func (b *canonicalBeaconBlockBatch) appendExecutionPayloadGloas(payload *ethv1.ExecutionPayloadGloas) error { + if payload == nil { + b.appendNullExecutionPayload() + + return nil + } + + baseFeePerGas, err := route.ParseUInt128(payload.GetBaseFeePerGas()) + if err != nil { + b.ExecutionPayloadBaseFeePerGas.Append(proto.Nullable[proto.UInt128]{}) + } else { + b.ExecutionPayloadBaseFeePerGas.Append(proto.NewNullable[proto.UInt128](baseFeePerGas)) + } + + b.ExecutionPayloadBlockHash.Append(proto.NewNullable[[]byte]([]byte(payload.GetBlockHash()))) + b.ExecutionPayloadFeeRecipient.Append(proto.NewNullable[string](payload.GetFeeRecipient())) + b.ExecutionPayloadStateRoot.Append(proto.NewNullable[[]byte]([]byte(payload.GetStateRoot()))) + b.ExecutionPayloadParentHash.Append(proto.NewNullable[[]byte]([]byte(payload.GetParentHash()))) + + if blockNumber := payload.GetBlockNumber(); blockNumber != nil { + b.ExecutionPayloadBlockNumber.Append(proto.NewNullable[uint32](uint32(blockNumber.GetValue()))) + } else { + b.ExecutionPayloadBlockNumber.Append(proto.Nullable[uint32]{}) + } + + if blobGasUsed := payload.GetBlobGasUsed(); blobGasUsed != nil { + b.ExecutionPayloadBlobGasUsed.Append(proto.NewNullable[uint64](blobGasUsed.GetValue())) + } else { + b.ExecutionPayloadBlobGasUsed.Append(proto.Nullable[uint64]{}) + } + + if excessBlobGas := payload.GetExcessBlobGas(); excessBlobGas != nil { + b.ExecutionPayloadExcessBlobGas.Append(proto.NewNullable[uint64](excessBlobGas.GetValue())) + } else { + b.ExecutionPayloadExcessBlobGas.Append(proto.Nullable[uint64]{}) + } + + if slotNumber := payload.GetSlotNumber(); slotNumber != nil { + b.ExecutionPayloadSlotNumber.Append(proto.NewNullable[uint64](slotNumber.GetValue())) + } else { + b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) + } + + if gasLimit := payload.GetGasLimit(); gasLimit != nil { + b.ExecutionPayloadGasLimit.Append(proto.NewNullable[uint64](gasLimit.GetValue())) + } else { + b.ExecutionPayloadGasLimit.Append(proto.Nullable[uint64]{}) + } + + if gasUsed := payload.GetGasUsed(); gasUsed != nil { + b.ExecutionPayloadGasUsed.Append(proto.NewNullable[uint64](gasUsed.GetValue())) + } else { + b.ExecutionPayloadGasUsed.Append(proto.Nullable[uint64]{}) + } + return nil } diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_access_list_test.go b/pkg/consumoor/route/canonical/canonical_beacon_block_access_list_test.go new file mode 100644 index 000000000..dd4defac9 --- /dev/null +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_access_list_test.go @@ -0,0 +1,77 @@ +package canonical + +import ( + "testing" + + "github.com/ethpandaops/xatu/pkg/consumoor/route/testfixture" + ethv1 "github.com/ethpandaops/xatu/pkg/proto/eth/v1" + "github.com/ethpandaops/xatu/pkg/proto/xatu" + "google.golang.org/protobuf/types/known/wrapperspb" +) + +func TestSnapshot_canonical_beacon_block_access_list(t *testing.T) { + testfixture.AssertSnapshot(t, newcanonicalBeaconBlockAccessListBatch(), &xatu.DecoratedEvent{ + Event: &xatu.Event{ + Name: xatu.Event_BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST, + DateTime: testfixture.TS(), + Id: "cbal-1", + }, + Meta: testfixture.MetaWithAdditional(&xatu.ClientMeta{ + AdditionalData: &xatu.ClientMeta_EthV2BeaconBlockAccessList{ + EthV2BeaconBlockAccessList: &xatu.ClientMeta_AdditionalEthV2BeaconBlockAccessListData{ + Block: &xatu.BlockIdentifier{ + Epoch: testfixture.EpochAdditional(), + }, + }, + }, + }), + Data: &xatu.DecoratedEvent_EthV2BeaconBlockAccessList{ + EthV2BeaconBlockAccessList: ðv1.BlockAccessListChange{ + Address: wrapperspb.String("0x1234567890abcdef1234567890abcdef12345678"), + ChangeType: "storage", + BlockAccessIndex: wrapperspb.UInt32(5), + StorageKey: wrapperspb.String("0xabcdef"), + NewValue: wrapperspb.String("0xdeadbeef"), + }, + }, + }, 1, map[string]any{ + "address": "0x1234567890abcdef1234567890abcdef12345678", + "change_type": "storage", + "block_access_index": uint32(5), + "storage_key": "0xabcdef", + "new_value": "0xdeadbeef", + }) +} + +func TestSnapshot_canonical_beacon_block_access_list_balance(t *testing.T) { + testfixture.AssertSnapshot(t, newcanonicalBeaconBlockAccessListBatch(), &xatu.DecoratedEvent{ + Event: &xatu.Event{ + Name: xatu.Event_BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST, + DateTime: testfixture.TS(), + Id: "cbal-2", + }, + Meta: testfixture.MetaWithAdditional(&xatu.ClientMeta{ + AdditionalData: &xatu.ClientMeta_EthV2BeaconBlockAccessList{ + EthV2BeaconBlockAccessList: &xatu.ClientMeta_AdditionalEthV2BeaconBlockAccessListData{ + Block: &xatu.BlockIdentifier{ + Epoch: testfixture.EpochAdditional(), + }, + }, + }, + }), + Data: &xatu.DecoratedEvent_EthV2BeaconBlockAccessList{ + EthV2BeaconBlockAccessList: ðv1.BlockAccessListChange{ + Address: wrapperspb.String("0xaabbccddee112233445566778899aabbccddeeff"), + ChangeType: "balance", + BlockAccessIndex: wrapperspb.UInt32(2), + NewValue: wrapperspb.String("1000000000000000000"), + }, + }, + }, 1, map[string]any{ + "address": "0xaabbccddee112233445566778899aabbccddeeff", + "change_type": "balance", + "block_access_index": uint32(2), + "storage_key": nil, + "new_value": "1000000000000000000", + }) +} diff --git a/pkg/proto/eth/v1/conversion_test.go b/pkg/proto/eth/v1/conversion_test.go index 61d21aed9..cdbf024eb 100644 --- a/pkg/proto/eth/v1/conversion_test.go +++ b/pkg/proto/eth/v1/conversion_test.go @@ -1,6 +1,13 @@ package v1 -import "testing" +import ( + "bytes" + "testing" + + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types/bal" + "github.com/holiman/uint256" +) func TestTrimmedString(t *testing.T) { tests := []struct { @@ -48,3 +55,162 @@ func TestTrimmedString(t *testing.T) { }) } } + +func TestNewBlockAccessListFromGloas_Empty(t *testing.T) { + result := NewBlockAccessListFromGloas(nil) + if result == nil { + t.Fatal("expected non-nil result for nil input") + } + + if len(result.GetEntries()) != 0 { + t.Errorf("expected 0 entries, got %d", len(result.GetEntries())) + } +} + +func TestNewBlockAccessListFromGloas_InvalidRLP(t *testing.T) { + result := NewBlockAccessListFromGloas([]byte{0xff, 0xfe, 0xfd}) + if result == nil { + t.Fatal("expected non-nil result for invalid RLP") + } + + if len(result.GetEntries()) != 0 { + t.Errorf("expected 0 entries for invalid RLP, got %d", len(result.GetEntries())) + } +} + +func rlpEncodeBAL(t *testing.T, cbal *bal.ConstructionBlockAccessList) []byte { + t.Helper() + + var buf bytes.Buffer + if err := cbal.EncodeRLP(&buf); err != nil { + t.Fatalf("failed to RLP-encode BAL: %v", err) + } + + return buf.Bytes() +} + +func TestNewBlockAccessListFromGloas_BalanceChange(t *testing.T) { + addr := common.HexToAddress("0x1111111111111111111111111111111111111111") + + cbal := bal.NewConstructionBlockAccessList() + cbal.AccountRead(addr) + cbal.Accounts[addr].BalanceChanges[3] = uint256.NewInt(1000) + + encoded := rlpEncodeBAL(t, &cbal) + result := NewBlockAccessListFromGloas(encoded) + + if len(result.GetEntries()) != 1 { + t.Fatalf("expected 1 entry, got %d", len(result.GetEntries())) + } + + entry := result.GetEntries()[0] + if got := entry.GetAddress().GetValue(); got != "0x1111111111111111111111111111111111111111" { + t.Errorf("unexpected address: %s", got) + } + + if len(entry.GetBalanceChanges()) != 1 { + t.Fatalf("expected 1 balance change, got %d", len(entry.GetBalanceChanges())) + } + + bc := entry.GetBalanceChanges()[0] + if bc.GetBlockAccessIndex().GetValue() != 3 { + t.Errorf("expected block_access_index=3, got %d", bc.GetBlockAccessIndex().GetValue()) + } + + if bc.GetPostBalance().GetValue() != "1000" { + t.Errorf("expected post_balance=1000, got %s", bc.GetPostBalance().GetValue()) + } +} + +func TestNewBlockAccessListFromGloas_NonceChange(t *testing.T) { + addr := common.HexToAddress("0x2222222222222222222222222222222222222222") + + cbal := bal.NewConstructionBlockAccessList() + cbal.AccountRead(addr) + cbal.Accounts[addr].NonceChanges[1] = 42 + + encoded := rlpEncodeBAL(t, &cbal) + result := NewBlockAccessListFromGloas(encoded) + + if len(result.GetEntries()) != 1 { + t.Fatalf("expected 1 entry, got %d", len(result.GetEntries())) + } + + entry := result.GetEntries()[0] + + if len(entry.GetNonceChanges()) != 1 { + t.Fatalf("expected 1 nonce change, got %d", len(entry.GetNonceChanges())) + } + + nc := entry.GetNonceChanges()[0] + if nc.GetBlockAccessIndex().GetValue() != 1 { + t.Errorf("expected block_access_index=1, got %d", nc.GetBlockAccessIndex().GetValue()) + } + + if nc.GetNewNonce().GetValue() != 42 { + t.Errorf("expected new_nonce=42, got %d", nc.GetNewNonce().GetValue()) + } +} + +func TestNewBlockAccessListFromGloas_StorageChange(t *testing.T) { + addr := common.HexToAddress("0x3333333333333333333333333333333333333333") + slot := common.HexToHash("0x0000000000000000000000000000000000000000000000000000000000000001") + value := common.HexToHash("0x00000000000000000000000000000000000000000000000000000000000000ff") + + cbal := bal.NewConstructionBlockAccessList() + cbal.AccountRead(addr) + cbal.Accounts[addr].StorageWrites[slot] = map[uint16]common.Hash{ + 2: value, + } + + encoded := rlpEncodeBAL(t, &cbal) + result := NewBlockAccessListFromGloas(encoded) + + if len(result.GetEntries()) != 1 { + t.Fatalf("expected 1 entry, got %d", len(result.GetEntries())) + } + + entry := result.GetEntries()[0] + + if len(entry.GetStorageChanges()) != 1 { + t.Fatalf("expected 1 storage change, got %d", len(entry.GetStorageChanges())) + } + + sc := entry.GetStorageChanges()[0] + if sc.GetBlockAccessIndex().GetValue() != 2 { + t.Errorf("expected block_access_index=2, got %d", sc.GetBlockAccessIndex().GetValue()) + } +} + +func TestNewBlockAccessListFromGloas_CodeChange(t *testing.T) { + addr := common.HexToAddress("0x4444444444444444444444444444444444444444") + + cbal := bal.NewConstructionBlockAccessList() + cbal.AccountRead(addr) + cbal.Accounts[addr].CodeChange = &bal.CodeChange{ + TxIndex: 7, + Code: []byte{0x60, 0x80, 0x60, 0x40}, + } + + encoded := rlpEncodeBAL(t, &cbal) + result := NewBlockAccessListFromGloas(encoded) + + if len(result.GetEntries()) != 1 { + t.Fatalf("expected 1 entry, got %d", len(result.GetEntries())) + } + + entry := result.GetEntries()[0] + + if len(entry.GetCodeChanges()) != 1 { + t.Fatalf("expected 1 code change, got %d", len(entry.GetCodeChanges())) + } + + cc := entry.GetCodeChanges()[0] + if cc.GetBlockAccessIndex().GetValue() != 7 { + t.Errorf("expected block_access_index=7, got %d", cc.GetBlockAccessIndex().GetValue()) + } + + if cc.GetNewCode().GetValue() != "0x60806040" { + t.Errorf("expected new_code=0x60806040, got %s", cc.GetNewCode().GetValue()) + } +} diff --git a/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block.go b/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block.go index d4c6ed454..535249349 100644 --- a/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block.go +++ b/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block.go @@ -100,14 +100,14 @@ func (b *BeaconBlock) Filter(ctx context.Context) bool { hash = fuluBlock.FuluBlock.StateRoot case spec.DataVersionGloas.String(): //nolint:staticcheck // Handled by v2 - gloasBlock, ok := data.EthV2BeaconBlock.Message.(*v2.EventBlock_GloasBlock) + gloasBlock, ok := data.EthV2BeaconBlock.GetMessage().(*v2.EventBlock_GloasBlock) if !ok { b.log.Error("failed to cast message to GloasBlock") return true } - hash = gloasBlock.GloasBlock.StateRoot + hash = gloasBlock.GloasBlock.GetStateRoot() default: b.log.Error(fmt.Errorf("unknown version: %s", version)) diff --git a/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_v2.go b/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_v2.go index ecb420b66..47c3644c9 100644 --- a/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_v2.go +++ b/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_v2.go @@ -95,14 +95,14 @@ func (b *BeaconBlockV2) Filter(ctx context.Context) bool { hash = fuluBlock.FuluBlock.StateRoot case spec.DataVersionGloas.String(): - gloasBlock, ok := data.EthV2BeaconBlockV2.Message.(*v2.EventBlockV2_GloasBlock) + gloasBlock, ok := data.EthV2BeaconBlockV2.GetMessage().(*v2.EventBlockV2_GloasBlock) if !ok { b.log.Error("failed to cast message to GloasBlock") return true } - hash = gloasBlock.GloasBlock.StateRoot + hash = gloasBlock.GloasBlock.GetStateRoot() default: b.log.Error(fmt.Errorf("unknown version: %s", version)) From d894cd5d46a01a6717b102747b3a934977b588e6 Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Mon, 23 Mar 2026 10:00:02 +1000 Subject: [PATCH 04/23] feat(event): add BeaconBlockAccessList for ETH V2 event handling Implement BeaconBlockAccessList type for handling access list events in the ETH V2 protocol. This adds support for new event type, enhances event routing, and allows for better structuring of events in the system. --- .../beacon/eth/v2/beacon_block_access_list.go | 46 +++++++++++++++++++ .../service/event-ingester/event/event.go | 4 ++ 2 files changed, 50 insertions(+) create mode 100644 pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_access_list.go diff --git a/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_access_list.go b/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_access_list.go new file mode 100644 index 000000000..35ec5f696 --- /dev/null +++ b/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_access_list.go @@ -0,0 +1,46 @@ +package v2 + +import ( + "context" + "errors" + + "github.com/ethpandaops/xatu/pkg/proto/xatu" + "github.com/sirupsen/logrus" +) + +const ( + BeaconBlockAccessListType = "BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST" +) + +type BeaconBlockAccessList struct { + log logrus.FieldLogger + event *xatu.DecoratedEvent +} + +func NewBeaconBlockAccessList(log logrus.FieldLogger, event *xatu.DecoratedEvent) *BeaconBlockAccessList { + return &BeaconBlockAccessList{ + log: log.WithField("event", BeaconBlockAccessListType), + event: event, + } +} + +func (b *BeaconBlockAccessList) Type() string { + return BeaconBlockAccessListType +} + +func (b *BeaconBlockAccessList) Validate(ctx context.Context) error { + _, ok := b.event.GetData().(*xatu.DecoratedEvent_EthV2BeaconBlockAccessList) + if !ok { + return errors.New("failed to cast event data") + } + + return nil +} + +func (b *BeaconBlockAccessList) Filter(ctx context.Context) bool { + return false +} + +func (b *BeaconBlockAccessList) AppendServerMeta(ctx context.Context, meta *xatu.ServerMeta) *xatu.ServerMeta { + return meta +} diff --git a/pkg/server/service/event-ingester/event/event.go b/pkg/server/service/event-ingester/event/event.go index a70770c1d..b8434f2bf 100644 --- a/pkg/server/service/event-ingester/event/event.go +++ b/pkg/server/service/event-ingester/event/event.go @@ -65,6 +65,7 @@ var ( TypeBeaconEthV2BeaconExecutionTransaction Type = v2.BeaconBlockExecutionTransactionType TypeBeaconEthV2BeaconBLSToExecutionChange Type = v2.BeaconBlockBLSToExecutionChangeType TypeBeaconEthV2BeaconWithdrawal Type = v2.BeaconBlockWithdrawalType + TypeBeaconEthV2BeaconBlockAccessList Type = v2.BeaconBlockAccessListType TypeBeaconETHV1EventsBlobSidecar Type = v1.EventsBlobSidecarType TypeBeaconETHV1EventsDataColumnSidecar Type = v1.EventsDataColumnSidecarType TypeBeaconETHV1BeaconBlobSidecar Type = v1.BeaconBlobSidecarType @@ -267,6 +268,9 @@ func NewEventRouter(log logrus.FieldLogger, cache store.Cache, geoipProvider geo router.RegisterHandler(TypeBeaconEthV2BeaconWithdrawal, func(event *xatu.DecoratedEvent, router *EventRouter) (Event, error) { return v2.NewBeaconBlockWithdrawal(router.log, event), nil }) + router.RegisterHandler(TypeBeaconEthV2BeaconBlockAccessList, func(event *xatu.DecoratedEvent, router *EventRouter) (Event, error) { + return v2.NewBeaconBlockAccessList(router.log, event), nil + }) router.RegisterHandler(TypeBeaconETHV1EventsBlobSidecar, func(event *xatu.DecoratedEvent, router *EventRouter) (Event, error) { return v1.NewEventsBlobSidecar(router.log, event), nil }) From 8d92c07799589d9deffb674e9519db4a0984384b Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Mon, 23 Mar 2026 10:25:56 +1000 Subject: [PATCH 05/23] chore(ci): update buf setup action to use a more recent commit SHA for improved stability chore(go.mod): update github.com/ethpandaops/beacon dependency to version v0.67.1 chore(go.sum): update checksum for the new github.com/ethpandaops/beacon version style(block_access_list.go): remove unnecessary empty line for cleaner code readability --- .github/workflows/buf.yaml | 2 +- go.mod | 2 +- go.sum | 4 ++-- pkg/cannon/deriver/beacon/eth/v2/block_access_list.go | 1 - 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/buf.yaml b/.github/workflows/buf.yaml index 8813aab2a..74cccc7c2 100644 --- a/.github/workflows/buf.yaml +++ b/.github/workflows/buf.yaml @@ -24,7 +24,7 @@ jobs: uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Set up buf - uses: bufbuild/buf-setup-action@a47c93e0b1648769eb9a2e1f98e7b4e3e13089f0 # v1.50.0 + uses: bufbuild/buf-setup-action@a47c93e0b1648d5651a065437926377d060baa99 # v1.50.0 - name: Lint protos run: buf lint diff --git a/go.mod b/go.mod index f10ae03d3..9bbfc425e 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/chuckpreslar/emission v0.0.0-20170206194824-a7ddd980baf9 github.com/creasty/defaults v1.8.0 github.com/ethereum/go-ethereum v1.17.0 - github.com/ethpandaops/beacon v0.65.0 + github.com/ethpandaops/beacon v0.67.1-0.20260323001121-5e1c4bf480ea github.com/ethpandaops/ethcore v0.0.0-20260225041126-afac0c250cdf github.com/ethpandaops/ethwallclock v0.4.0 github.com/ferranbt/fastssz v1.0.0 diff --git a/go.sum b/go.sum index 2b9169d80..606a53d37 100644 --- a/go.sum +++ b/go.sum @@ -175,8 +175,8 @@ github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab h1:rvv6MJ github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab/go.mod h1:IuLm4IsPipXKF7CW5Lzf68PIbZ5yl7FFd74l/E0o9A8= github.com/ethereum/go-ethereum v1.17.0 h1:2D+1Fe23CwZ5tQoAS5DfwKFNI1HGcTwi65/kRlAVxes= github.com/ethereum/go-ethereum v1.17.0/go.mod h1:2W3msvdosS/MCWytpqTcqgFiRYbTH59FxDJzqah120o= -github.com/ethpandaops/beacon v0.65.0 h1:ssnab73uiuzhmhtU56q9D3ecVrEYv5n+tuqrXRK4YAg= -github.com/ethpandaops/beacon v0.65.0/go.mod h1:lgzrJjQVV77wZ+PJymsY3bQbAK4jrtP8n3WOwMf1Pcs= +github.com/ethpandaops/beacon v0.67.1-0.20260323001121-5e1c4bf480ea h1:YFkMVueuQXjhFW/wjhAlT5VJ4oRMkemqNx7BdaPQAYM= +github.com/ethpandaops/beacon v0.67.1-0.20260323001121-5e1c4bf480ea/go.mod h1:3wfZNuwIk9iR2FfbiuF/3haWF3ppbEDWeZvtSAaVdoU= github.com/ethpandaops/ethcore v0.0.0-20260225041126-afac0c250cdf h1:8tgE9iUsf9TyruUT3MXVjUlMy5aEc+fuzraRyPlUbBU= github.com/ethpandaops/ethcore v0.0.0-20260225041126-afac0c250cdf/go.mod h1:NblaW7ZBfBA85g9SsJyiDzeecTgvxMnFZTWUAj40vg8= github.com/ethpandaops/ethereum-package-go v0.8.1 h1:VN5l8UXveyw7gp0Glj8BRzS/D5RKyvhLeaoi/C5Jy5M= diff --git a/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go b/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go index 04d2df5af..1afaaf1c5 100644 --- a/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go +++ b/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go @@ -179,7 +179,6 @@ func (b *BlockAccessListDeriver) run(rctx context.Context) { Warn("Failed to process") }), } - if _, err := backoff.Retry(rctx, operation, retryOpts...); err != nil { b.log.WithError(err).Warn("Failed to process") } From e5f523d3255e86527599d60732859b28cfc55687 Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Mon, 23 Mar 2026 10:34:09 +1000 Subject: [PATCH 06/23] chore(go.mod): update ethpandaops/beacon dependency to latest version to ensure compatibility and access to bug fixes chore(go.sum): update checksum for ethpandaops/beacon to match new version --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 9bbfc425e..ef2a5eadc 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/chuckpreslar/emission v0.0.0-20170206194824-a7ddd980baf9 github.com/creasty/defaults v1.8.0 github.com/ethereum/go-ethereum v1.17.0 - github.com/ethpandaops/beacon v0.67.1-0.20260323001121-5e1c4bf480ea + github.com/ethpandaops/beacon v0.67.1-0.20260323003205-7b1d6d7ddd50 github.com/ethpandaops/ethcore v0.0.0-20260225041126-afac0c250cdf github.com/ethpandaops/ethwallclock v0.4.0 github.com/ferranbt/fastssz v1.0.0 diff --git a/go.sum b/go.sum index 606a53d37..7c7afa351 100644 --- a/go.sum +++ b/go.sum @@ -175,8 +175,8 @@ github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab h1:rvv6MJ github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab/go.mod h1:IuLm4IsPipXKF7CW5Lzf68PIbZ5yl7FFd74l/E0o9A8= github.com/ethereum/go-ethereum v1.17.0 h1:2D+1Fe23CwZ5tQoAS5DfwKFNI1HGcTwi65/kRlAVxes= github.com/ethereum/go-ethereum v1.17.0/go.mod h1:2W3msvdosS/MCWytpqTcqgFiRYbTH59FxDJzqah120o= -github.com/ethpandaops/beacon v0.67.1-0.20260323001121-5e1c4bf480ea h1:YFkMVueuQXjhFW/wjhAlT5VJ4oRMkemqNx7BdaPQAYM= -github.com/ethpandaops/beacon v0.67.1-0.20260323001121-5e1c4bf480ea/go.mod h1:3wfZNuwIk9iR2FfbiuF/3haWF3ppbEDWeZvtSAaVdoU= +github.com/ethpandaops/beacon v0.67.1-0.20260323003205-7b1d6d7ddd50 h1:uxHh1IuCLqXse9Gt6i4HRoOhe8/sguPgnlJcEsDgxu8= +github.com/ethpandaops/beacon v0.67.1-0.20260323003205-7b1d6d7ddd50/go.mod h1:3wfZNuwIk9iR2FfbiuF/3haWF3ppbEDWeZvtSAaVdoU= github.com/ethpandaops/ethcore v0.0.0-20260225041126-afac0c250cdf h1:8tgE9iUsf9TyruUT3MXVjUlMy5aEc+fuzraRyPlUbBU= github.com/ethpandaops/ethcore v0.0.0-20260225041126-afac0c250cdf/go.mod h1:NblaW7ZBfBA85g9SsJyiDzeecTgvxMnFZTWUAj40vg8= github.com/ethpandaops/ethereum-package-go v0.8.1 h1:VN5l8UXveyw7gp0Glj8BRzS/D5RKyvhLeaoi/C5Jy5M= From f5f8ce29e55ce8d9d4b8a6edadece6f9de6c7ca4 Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Mon, 23 Mar 2026 10:36:56 +1000 Subject: [PATCH 07/23] fix(go.mod): update go-ethereum to v1.17.1 and c-kzg-4844 to v2.1.6 for improved functionality fix(go.mod): change ethcore version to v0.0.0-20260323002709-50f492685a52 for compatibility fix(go.sum): update checksums for go-ethereum, c-kzg-4844, and ethcore dependencies fix(conversion.go): update access.Code to access.CodeChanges for clarity in block access list creation fix(conversion_test.go): adjust test to set CodeChange correctly in the test setup for block access list --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- pkg/proto/eth/v1/conversion.go | 2 +- pkg/proto/eth/v1/conversion_test.go | 5 +---- 4 files changed, 14 insertions(+), 17 deletions(-) diff --git a/go.mod b/go.mod index ef2a5eadc..28feb8c11 100644 --- a/go.mod +++ b/go.mod @@ -20,9 +20,9 @@ require ( github.com/cenkalti/backoff/v5 v5.0.3 github.com/chuckpreslar/emission v0.0.0-20170206194824-a7ddd980baf9 github.com/creasty/defaults v1.8.0 - github.com/ethereum/go-ethereum v1.17.0 + github.com/ethereum/go-ethereum v1.17.1 github.com/ethpandaops/beacon v0.67.1-0.20260323003205-7b1d6d7ddd50 - github.com/ethpandaops/ethcore v0.0.0-20260225041126-afac0c250cdf + github.com/ethpandaops/ethcore v0.0.0-20260323002709-50f492685a52 github.com/ethpandaops/ethwallclock v0.4.0 github.com/ferranbt/fastssz v1.0.0 github.com/go-co-op/gocron/v2 v2.16.6 @@ -116,7 +116,7 @@ require ( github.com/eapache/queue v1.1.0 // indirect github.com/ebitengine/purego v0.8.4 // indirect github.com/emicklei/dot v1.9.0 // indirect - github.com/ethereum/c-kzg-4844/v2 v2.1.5 // indirect + github.com/ethereum/c-kzg-4844/v2 v2.1.6 // indirect github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab // indirect github.com/fatih/color v1.18.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect @@ -268,7 +268,7 @@ require ( github.com/spaolacci/murmur3 v1.1.0 // indirect github.com/spf13/cast v1.10.0 // indirect github.com/spf13/pflag v1.0.10 // indirect - github.com/supranational/blst v0.3.16-0.20250831170142-f48500c1fdbe // indirect + github.com/supranational/blst v0.3.16 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/thomaso-mirodin/intmath v0.0.0-20160323211736-5dc6d854e46e // indirect github.com/tilinna/z85 v1.0.0 // indirect diff --git a/go.sum b/go.sum index 7c7afa351..c559f3616 100644 --- a/go.sum +++ b/go.sum @@ -169,16 +169,16 @@ github.com/emicklei/dot v1.9.0 h1:FyaJNctdMfaEIbTQ1FkKZ1UCZyJJSkyvkrXOVoNZPKU= github.com/emicklei/dot v1.9.0/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s= github.com/emicklei/proto v1.14.2 h1:wJPxPy2Xifja9cEMrcA/g08art5+7CGJNFNk35iXC1I= github.com/emicklei/proto v1.14.2/go.mod h1:rn1FgRS/FANiZdD2djyH7TMA9jdRDcYQ9IEN9yvjX0A= -github.com/ethereum/c-kzg-4844/v2 v2.1.5 h1:aVtoLK5xwJ6c5RiqO8g8ptJ5KU+2Hdquf6G3aXiHh5s= -github.com/ethereum/c-kzg-4844/v2 v2.1.5/go.mod h1:u59hRTTah4Co6i9fDWtiCjTrblJv0UwsqZKCc0GfgUs= +github.com/ethereum/c-kzg-4844/v2 v2.1.6 h1:xQymkKCT5E2Jiaoqf3v4wsNgjZLY0lRSkZn27fRjSls= +github.com/ethereum/c-kzg-4844/v2 v2.1.6/go.mod h1:8HMkUZ5JRv4hpw/XUrYWSQNAUzhHMg2UDb/U+5m+XNw= github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab h1:rvv6MJhy07IMfEKuARQ9TKojGqLVNxQajaXEp/BoqSk= github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab/go.mod h1:IuLm4IsPipXKF7CW5Lzf68PIbZ5yl7FFd74l/E0o9A8= -github.com/ethereum/go-ethereum v1.17.0 h1:2D+1Fe23CwZ5tQoAS5DfwKFNI1HGcTwi65/kRlAVxes= -github.com/ethereum/go-ethereum v1.17.0/go.mod h1:2W3msvdosS/MCWytpqTcqgFiRYbTH59FxDJzqah120o= +github.com/ethereum/go-ethereum v1.17.1 h1:IjlQDjgxg2uL+GzPRkygGULPMLzcYWncEI7wbaizvho= +github.com/ethereum/go-ethereum v1.17.1/go.mod h1:7UWOVHL7K3b8RfVRea022btnzLCaanwHtBuH1jUCH/I= github.com/ethpandaops/beacon v0.67.1-0.20260323003205-7b1d6d7ddd50 h1:uxHh1IuCLqXse9Gt6i4HRoOhe8/sguPgnlJcEsDgxu8= github.com/ethpandaops/beacon v0.67.1-0.20260323003205-7b1d6d7ddd50/go.mod h1:3wfZNuwIk9iR2FfbiuF/3haWF3ppbEDWeZvtSAaVdoU= -github.com/ethpandaops/ethcore v0.0.0-20260225041126-afac0c250cdf h1:8tgE9iUsf9TyruUT3MXVjUlMy5aEc+fuzraRyPlUbBU= -github.com/ethpandaops/ethcore v0.0.0-20260225041126-afac0c250cdf/go.mod h1:NblaW7ZBfBA85g9SsJyiDzeecTgvxMnFZTWUAj40vg8= +github.com/ethpandaops/ethcore v0.0.0-20260323002709-50f492685a52 h1:pShftm+oDBTNs2NSWCLEQR85bT86BziwirHwUVhf+oc= +github.com/ethpandaops/ethcore v0.0.0-20260323002709-50f492685a52/go.mod h1:C5tc+lRiKQjT+sT8vCirQkmWDDtc1kw20JrhT6O5SPk= github.com/ethpandaops/ethereum-package-go v0.8.1 h1:VN5l8UXveyw7gp0Glj8BRzS/D5RKyvhLeaoi/C5Jy5M= github.com/ethpandaops/ethereum-package-go v0.8.1/go.mod h1:LQThCwlCeeNBTdXOFV+xSwudoced53x+o/Orya3Y+oo= github.com/ethpandaops/ethwallclock v0.4.0 h1:+sgnhf4pk6hLPukP076VxkiLloE4L0Yk1yat+ZyHh1g= @@ -748,8 +748,8 @@ github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/stvp/tempredis v0.0.0-20181119212430-b82af8480203 h1:QVqDTf3h2WHt08YuiTGPZLls0Wq99X9bWd0Q5ZSBesM= github.com/stvp/tempredis v0.0.0-20181119212430-b82af8480203/go.mod h1:oqN97ltKNihBbwlX8dLpwxCl3+HnXKV/R0e+sRLd9C8= -github.com/supranational/blst v0.3.16-0.20250831170142-f48500c1fdbe h1:nbdqkIGOGfUAD54q1s2YBcBz/WcsxCO9HUQ4aGV5hUw= -github.com/supranational/blst v0.3.16-0.20250831170142-f48500c1fdbe/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= +github.com/supranational/blst v0.3.16 h1:bTDadT+3fK497EvLdWRQEjiGnUtzJ7jjIUMF0jqwYhE= +github.com/supranational/blst v0.3.16/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/testcontainers/testcontainers-go v0.40.0 h1:pSdJYLOVgLE8YdUY2FHQ1Fxu+aMnb6JfVz1mxk7OeMU= diff --git a/pkg/proto/eth/v1/conversion.go b/pkg/proto/eth/v1/conversion.go index a25d779b5..d24891053 100644 --- a/pkg/proto/eth/v1/conversion.go +++ b/pkg/proto/eth/v1/conversion.go @@ -413,7 +413,7 @@ func NewBlockAccessListFromGloas(rawBAL gloas.BlockAccessList) *BlockAccessList } // Code changes - for _, code := range access.Code { + for _, code := range access.CodeChanges { entry.CodeChanges = append(entry.CodeChanges, &BlockAccessListCodeChange{ BlockAccessIndex: &wrapperspb.UInt32Value{Value: uint32(code.TxIndex)}, NewCode: &wrapperspb.StringValue{Value: fmt.Sprintf("0x%x", code.Code)}, diff --git a/pkg/proto/eth/v1/conversion_test.go b/pkg/proto/eth/v1/conversion_test.go index cdbf024eb..73dbe050d 100644 --- a/pkg/proto/eth/v1/conversion_test.go +++ b/pkg/proto/eth/v1/conversion_test.go @@ -187,10 +187,7 @@ func TestNewBlockAccessListFromGloas_CodeChange(t *testing.T) { cbal := bal.NewConstructionBlockAccessList() cbal.AccountRead(addr) - cbal.Accounts[addr].CodeChange = &bal.CodeChange{ - TxIndex: 7, - Code: []byte{0x60, 0x80, 0x60, 0x40}, - } + cbal.Accounts[addr].CodeChange[7] = []byte{0x60, 0x80, 0x60, 0x40} encoded := rlpEncodeBAL(t, &cbal) result := NewBlockAccessListFromGloas(encoded) From 3c146fbb7ae25bc89627e40ba79681118823d3b7 Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Mon, 23 Mar 2026 10:45:14 +1000 Subject: [PATCH 08/23] feat(docker-compose): add support for beacon block access list events in Kafka and ClickHouse This change enhances the data pipeline by adding the beacon block access list event transformation and corresponding sinks, enabling better handling of this specific event data for analytics and processing downstream. --- .../docker-compose/vector-http-kafka.yaml | 17 ++++++ .../vector-kafka-clickhouse.yaml | 57 +++++++++++++++++++ deploy/local/docker-compose/xatu-server.yaml | 1 + 3 files changed, 75 insertions(+) diff --git a/deploy/local/docker-compose/vector-http-kafka.yaml b/deploy/local/docker-compose/vector-http-kafka.yaml index d69bcac32..a530b790f 100644 --- a/deploy/local/docker-compose/vector-http-kafka.yaml +++ b/deploy/local/docker-compose/vector-http-kafka.yaml @@ -52,6 +52,7 @@ transforms: eth_v2_beacon_block_v2: .event.name == "BEACON_API_ETH_V2_BEACON_BLOCK_V2" eth_v2_beacon_block_voluntary_exit: .event.name == "BEACON_API_ETH_V2_BEACON_BLOCK_VOLUNTARY_EXIT" eth_v2_beacon_block_withdrawal: .event.name == "BEACON_API_ETH_V2_BEACON_BLOCK_WITHDRAWAL" + eth_v2_beacon_block_access_list: .event.name == "BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST" eth_v2_beacon_block: .event.name == "BEACON_API_ETH_V2_BEACON_BLOCK" mempool_transaction_v2: .event.name == "MEMPOOL_TRANSACTION_V2" mempool_transaction: .event.name == "MEMPOOL_TRANSACTION" @@ -763,6 +764,22 @@ sinks: enabled: true encoding: codec: json + beacon_api_eth_v2_beacon_block_access_list_kafka: + type: kafka + buffer: + max_events: 500000 + batch: + timeout_secs: 0.5 + inputs: + - xatu_server_events_router.eth_v2_beacon_block_access_list + bootstrap_servers: "${KAFKA_BROKERS}" + key_field: "event.id" + topic: beacon-api-eth-v2-beacon-block-access-list + compression: snappy + healthcheck: + enabled: true + encoding: + codec: json beacon_api_eth_v1_beacon_blob_sidecar_kafka: type: kafka buffer: diff --git a/deploy/local/docker-compose/vector-kafka-clickhouse.yaml b/deploy/local/docker-compose/vector-kafka-clickhouse.yaml index 046bc0d8b..7891d6cca 100644 --- a/deploy/local/docker-compose/vector-kafka-clickhouse.yaml +++ b/deploy/local/docker-compose/vector-kafka-clickhouse.yaml @@ -424,6 +424,7 @@ transforms: canonical_beacon_block_voluntary_exit: .event.name == "BEACON_API_ETH_V2_BEACON_BLOCK_VOLUNTARY_EXIT" canonical_beacon_validators: .event.name == "BEACON_API_ETH_V1_BEACON_VALIDATORS" canonical_beacon_block_withdrawal: .event.name == "BEACON_API_ETH_V2_BEACON_BLOCK_WITHDRAWAL" + canonical_beacon_block_access_list: .event.name == "BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST" canonical_beacon_block: .event.name == "BEACON_API_ETH_V2_BEACON_BLOCK_V2" && .meta.client.additional_data.finalized_when_requested == true canonical_beacon_proposer_duty: .event.name == "BEACON_API_ETH_V1_PROPOSER_DUTY" && .meta.client.additional_data.state_id == "finalized" canonical_beacon_committee: .event.name == "BEACON_API_ETH_V1_BEACON_COMMITTEE" && .meta.client.additional_data.state_id == "finalized" @@ -480,6 +481,7 @@ transforms: - xatu_server_events_router.canonical_beacon_block_proposer_slashing - xatu_server_events_router.canonical_beacon_block_voluntary_exit - xatu_server_events_router.canonical_beacon_block_withdrawal + - xatu_server_events_router.canonical_beacon_block_access_list - xatu_server_events_router.canonical_beacon_proposer_duty - xatu_server_events_router.canonical_beacon_committee - xatu_server_events_router.eth_v1_beacon_committee @@ -1557,6 +1559,41 @@ transforms: del(.event) del(.meta) del(.data) + canonical_beacon_block_access_list_formatted: + type: remap + inputs: + - xatu_server_events_router.canonical_beacon_block_access_list + source: |- + .slot = .meta.client.additional_data.block.slot.number + slot_start_date_time, err = parse_timestamp(.meta.client.additional_data.block.slot.start_date_time, format: "%+"); + if err == null { + .slot_start_date_time = to_unix_timestamp(slot_start_date_time) + } else { + .error = err + .error_description = "failed to parse slot start date time" + log(., level: "error", rate_limit_secs: 60) + } + .epoch = .meta.client.additional_data.block.epoch.number + epoch_start_date_time, err = parse_timestamp(.meta.client.additional_data.block.epoch.start_date_time, format: "%+"); + if err == null { + .epoch_start_date_time = to_unix_timestamp(epoch_start_date_time) + } else { + .error = err + .error_description = "failed to parse epoch start date time" + log(., level: "error", rate_limit_secs: 60) + } + .block_root = .meta.client.additional_data.block.root + .block_number = 0 + .block_hash = "" + .address = .data.address + .change_type = .data.change_type + .block_access_index = .data.block_access_index + .storage_key = .data.storage_key + .new_value = .data.new_value + .updated_date_time = to_unix_timestamp(now()) + del(.event) + del(.meta) + del(.data) canonical_beacon_blob_sidecar_formatted: type: remap inputs: @@ -3508,6 +3545,26 @@ sinks: healthcheck: enabled: true skip_unknown_fields: false + canonical_beacon_block_access_list_clickhouse: + type: clickhouse + inputs: + - canonical_beacon_block_access_list_formatted + database: default + endpoint: "${CLICKHOUSE_ENDPOINT}" + table: canonical_beacon_block_access_list + auth: + strategy: basic + user: "${CLICKHOUSE_USER}" + password: "${CLICKHOUSE_PASSWORD}" + batch: + max_bytes: 52428800 + max_events: 200000 + timeout_secs: 1 + buffer: + max_events: 200000 + healthcheck: + enabled: true + skip_unknown_fields: false canonical_beacon_blob_sidecar_clickhouse: type: clickhouse inputs: diff --git a/deploy/local/docker-compose/xatu-server.yaml b/deploy/local/docker-compose/xatu-server.yaml index 076cbe150..f42243b7d 100644 --- a/deploy/local/docker-compose/xatu-server.yaml +++ b/deploy/local/docker-compose/xatu-server.yaml @@ -197,6 +197,7 @@ services: - BEACON_API_ETH_V2_BEACON_BLOCK_VOLUNTARY_EXIT - BEACON_API_ETH_V2_BEACON_BLOCK_DEPOSIT - BEACON_API_ETH_V2_BEACON_BLOCK_WITHDRAWAL + - BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST - BEACON_API_ETH_V2_BEACON_BLOCK_ELABORATED_ATTESTATION - BEACON_API_ETH_V2_BEACON_BLOCK - BEACON_API_ETH_V2_BEACON_BLOCK_V2 From fb5e988d9e26a00eabebebc55f499ff49163fbfe Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Tue, 24 Mar 2026 12:20:37 +1000 Subject: [PATCH 09/23] refactor: bals structure rlp decoded --- .../vector-kafka-clickhouse.yaml | 7 +- .../clickhouse/106_gloas_support.up.sql | 2 +- docker-compose.yml | 1 + go.mod | 6 +- go.sum | 12 +- .../beacon/eth/v2/block_access_list.go | 27 +- .../backfilling_checkpoint_iterator.go | 8 + .../canonical_beacon_block_access_list.gen.go | 10 +- .../canonical_beacon_block_access_list.go | 13 +- ...canonical_beacon_block_access_list_test.go | 2 +- pkg/proto/eth/v1/conversion.go | 24 +- pkg/proto/eth/v1/conversion_test.go | 157 +- pkg/proto/xatu/event_ingester.pb.go | 3803 +++++++++-------- pkg/proto/xatu/event_ingester.proto | 4 + pkg/server/persistence/cannon/location.go | 24 + 15 files changed, 2048 insertions(+), 2052 deletions(-) diff --git a/deploy/local/docker-compose/vector-kafka-clickhouse.yaml b/deploy/local/docker-compose/vector-kafka-clickhouse.yaml index 7891d6cca..d8a59e3a7 100644 --- a/deploy/local/docker-compose/vector-kafka-clickhouse.yaml +++ b/deploy/local/docker-compose/vector-kafka-clickhouse.yaml @@ -1209,6 +1209,7 @@ transforms: .execution_payload_base_fee_per_gas = .data.message.body.execution_payload.base_fee_per_gas .execution_payload_blob_gas_used = .data.message.body.execution_payload.blob_gas_used .execution_payload_excess_blob_gas = .data.message.body.execution_payload.excess_blob_gas + .execution_payload_slot_number = .data.message.body.execution_payload.slot_number .execution_payload_gas_limit = .data.message.body.execution_payload.gas_limit .execution_payload_gas_used = .data.message.body.execution_payload.gas_used .execution_payload_state_root = .data.message.body.execution_payload.state_root @@ -1280,6 +1281,7 @@ transforms: .execution_payload_base_fee_per_gas = .data.message.body.execution_payload.base_fee_per_gas .execution_payload_blob_gas_used = .data.message.body.execution_payload.blob_gas_used .execution_payload_excess_blob_gas = .data.message.body.execution_payload.excess_blob_gas + .execution_payload_slot_number = .data.message.body.execution_payload.slot_number .execution_payload_gas_limit = .data.message.body.execution_payload.gas_limit .execution_payload_gas_used = .data.message.body.execution_payload.gas_used .execution_payload_state_root = .data.message.body.execution_payload.state_root @@ -1583,8 +1585,8 @@ transforms: log(., level: "error", rate_limit_secs: 60) } .block_root = .meta.client.additional_data.block.root - .block_number = 0 - .block_hash = "" + .block_number = .meta.client.additional_data.block_number + .block_hash = .meta.client.additional_data.block_hash .address = .data.address .change_type = .data.change_type .block_access_index = .data.block_access_index @@ -2350,6 +2352,7 @@ transforms: .execution_payload_base_fee_per_gas = .data.message.body.execution_payload.base_fee_per_gas .execution_payload_blob_gas_used = .data.message.body.execution_payload.blob_gas_used .execution_payload_excess_blob_gas = .data.message.body.execution_payload.excess_blob_gas + .execution_payload_slot_number = .data.message.body.execution_payload.slot_number .execution_payload_gas_limit = .data.message.body.execution_payload.gas_limit .execution_payload_gas_used = .data.message.body.execution_payload.gas_used .execution_payload_transactions_count = .meta.client.additional_data.transactions_count diff --git a/deploy/migrations/clickhouse/106_gloas_support.up.sql b/deploy/migrations/clickhouse/106_gloas_support.up.sql index 09b8d4ab3..30801b68b 100644 --- a/deploy/migrations/clickhouse/106_gloas_support.up.sql +++ b/deploy/migrations/clickhouse/106_gloas_support.up.sql @@ -33,7 +33,7 @@ CREATE TABLE IF NOT EXISTS default.canonical_beacon_block_access_list_local ON C address FixedString(42) CODEC(ZSTD(1)), change_type LowCardinality(String) CODEC(ZSTD(1)), block_access_index UInt16 CODEC(DoubleDelta, ZSTD(1)), - storage_key Nullable(FixedString(66)) CODEC(ZSTD(1)), + storage_key FixedString(66) CODEC(ZSTD(1)), new_value Nullable(String) CODEC(ZSTD(1)), meta_client_name LowCardinality(String) CODEC(ZSTD(1)), meta_client_id String CODEC(ZSTD(1)), diff --git a/docker-compose.yml b/docker-compose.yml index f71bd53f0..3cdb0228c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -292,6 +292,7 @@ services: "beacon-api-eth-v2-beacon-block-proposer-slashing" "beacon-api-eth-v2-beacon-block-voluntary-exit" "beacon-api-eth-v2-beacon-block-withdrawal" + "beacon-api-eth-v2-beacon-block-access-list" "beacon-api-eth-v2-beacon-block-elaborated-attestation" "beacon-p2p-attestation" "mempool-transaction" diff --git a/go.mod b/go.mod index 28feb8c11..572822b61 100644 --- a/go.mod +++ b/go.mod @@ -20,9 +20,9 @@ require ( github.com/cenkalti/backoff/v5 v5.0.3 github.com/chuckpreslar/emission v0.0.0-20170206194824-a7ddd980baf9 github.com/creasty/defaults v1.8.0 - github.com/ethereum/go-ethereum v1.17.1 - github.com/ethpandaops/beacon v0.67.1-0.20260323003205-7b1d6d7ddd50 - github.com/ethpandaops/ethcore v0.0.0-20260323002709-50f492685a52 + github.com/ethereum/go-ethereum v1.17.2-0.20260319135215-e5d453c086c7 + github.com/ethpandaops/beacon v0.67.1-0.20260324015045-f64d291dca36 + github.com/ethpandaops/ethcore v0.0.0-20260324015639-f83abb88486d github.com/ethpandaops/ethwallclock v0.4.0 github.com/ferranbt/fastssz v1.0.0 github.com/go-co-op/gocron/v2 v2.16.6 diff --git a/go.sum b/go.sum index c559f3616..95e3e8c4b 100644 --- a/go.sum +++ b/go.sum @@ -173,12 +173,12 @@ github.com/ethereum/c-kzg-4844/v2 v2.1.6 h1:xQymkKCT5E2Jiaoqf3v4wsNgjZLY0lRSkZn2 github.com/ethereum/c-kzg-4844/v2 v2.1.6/go.mod h1:8HMkUZ5JRv4hpw/XUrYWSQNAUzhHMg2UDb/U+5m+XNw= github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab h1:rvv6MJhy07IMfEKuARQ9TKojGqLVNxQajaXEp/BoqSk= github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab/go.mod h1:IuLm4IsPipXKF7CW5Lzf68PIbZ5yl7FFd74l/E0o9A8= -github.com/ethereum/go-ethereum v1.17.1 h1:IjlQDjgxg2uL+GzPRkygGULPMLzcYWncEI7wbaizvho= -github.com/ethereum/go-ethereum v1.17.1/go.mod h1:7UWOVHL7K3b8RfVRea022btnzLCaanwHtBuH1jUCH/I= -github.com/ethpandaops/beacon v0.67.1-0.20260323003205-7b1d6d7ddd50 h1:uxHh1IuCLqXse9Gt6i4HRoOhe8/sguPgnlJcEsDgxu8= -github.com/ethpandaops/beacon v0.67.1-0.20260323003205-7b1d6d7ddd50/go.mod h1:3wfZNuwIk9iR2FfbiuF/3haWF3ppbEDWeZvtSAaVdoU= -github.com/ethpandaops/ethcore v0.0.0-20260323002709-50f492685a52 h1:pShftm+oDBTNs2NSWCLEQR85bT86BziwirHwUVhf+oc= -github.com/ethpandaops/ethcore v0.0.0-20260323002709-50f492685a52/go.mod h1:C5tc+lRiKQjT+sT8vCirQkmWDDtc1kw20JrhT6O5SPk= +github.com/ethereum/go-ethereum v1.17.2-0.20260319135215-e5d453c086c7 h1:3iXPDQhD4YaF9wzx6um5lydHidwThQQ2E3SMQpAk7dM= +github.com/ethereum/go-ethereum v1.17.2-0.20260319135215-e5d453c086c7/go.mod h1:8BS3L+ky1nBsSvjoKueaUeEYxKnC0sbW2ImjVCXkpy8= +github.com/ethpandaops/beacon v0.67.1-0.20260324015045-f64d291dca36 h1:yUbJ9j85yYf+c0UR1d9TaQFH84tNIjVR97lbCdxZUIA= +github.com/ethpandaops/beacon v0.67.1-0.20260324015045-f64d291dca36/go.mod h1:ll2pYRTNhsKsewSmHcuun4Jj4cCn1NTVxc5ORaU/DiQ= +github.com/ethpandaops/ethcore v0.0.0-20260324015639-f83abb88486d h1:ORaeQtW6h98LiBfLek4eOoisQSePD610viaVq0XHG48= +github.com/ethpandaops/ethcore v0.0.0-20260324015639-f83abb88486d/go.mod h1:RtK637I9SqG0zn5sBTu/Xbxxy0FPwKRGaq910nbs+BI= github.com/ethpandaops/ethereum-package-go v0.8.1 h1:VN5l8UXveyw7gp0Glj8BRzS/D5RKyvhLeaoi/C5Jy5M= github.com/ethpandaops/ethereum-package-go v0.8.1/go.mod h1:LQThCwlCeeNBTdXOFV+xSwudoced53x+o/Orya3Y+oo= github.com/ethpandaops/ethwallclock v0.4.0 h1:+sgnhf4pk6hLPukP076VxkiLloE4L0Yk1yat+ZyHh1g= diff --git a/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go b/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go index 1afaaf1c5..19070709e 100644 --- a/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go +++ b/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go @@ -259,10 +259,17 @@ func (b *BlockAccessListDeriver) processSlot( "failed to get block identifier for slot %d", slot) } + execPayload := block.Gloas.Message.Body.ExecutionPayload + execBlockNumber := execPayload.BlockNumber + execBlockHash := fmt.Sprintf("%#x", execPayload.BlockHash) + // Decode the BAL from the ExecutionPayload - bal := xatuethv1.NewBlockAccessListFromGloas( - block.Gloas.Message.Body.ExecutionPayload.BlockAccessList, - ) + rawBAL := execPayload.BlockAccessList + b.log.WithField("slot", slot).WithField("raw_bal_len", len(rawBAL)).Debug("Processing BAL data") + + bal := xatuethv1.NewBlockAccessListFromGloas(rawBAL) + + b.log.WithField("slot", slot).WithField("entries", len(bal.GetEntries())).Debug("Decoded BAL entries") if bal == nil || len(bal.GetEntries()) == 0 { return []*xatu.DecoratedEvent{}, nil @@ -283,7 +290,7 @@ func (b *BlockAccessListDeriver) processSlot( NewValue: sc.GetNewValue(), } - event, err := b.createEvent(ctx, change, blockIdentifier) + event, err := b.createEvent(ctx, change, blockIdentifier, execBlockNumber, execBlockHash) if err != nil { return nil, errors.Wrap(err, "failed to create storage change event") } @@ -299,7 +306,7 @@ func (b *BlockAccessListDeriver) processSlot( NewValue: bc.GetPostBalance(), } - event, err := b.createEvent(ctx, change, blockIdentifier) + event, err := b.createEvent(ctx, change, blockIdentifier, execBlockNumber, execBlockHash) if err != nil { return nil, errors.Wrap(err, "failed to create balance change event") } @@ -322,7 +329,7 @@ func (b *BlockAccessListDeriver) processSlot( NewValue: newValue, } - event, err := b.createEvent(ctx, change, blockIdentifier) + event, err := b.createEvent(ctx, change, blockIdentifier, execBlockNumber, execBlockHash) if err != nil { return nil, errors.Wrap(err, "failed to create nonce change event") } @@ -338,7 +345,7 @@ func (b *BlockAccessListDeriver) processSlot( NewValue: cc.GetNewCode(), } - event, err := b.createEvent(ctx, change, blockIdentifier) + event, err := b.createEvent(ctx, change, blockIdentifier, execBlockNumber, execBlockHash) if err != nil { return nil, errors.Wrap(err, "failed to create code change event") } @@ -354,6 +361,8 @@ func (b *BlockAccessListDeriver) createEvent( ctx context.Context, change *xatuethv1.BlockAccessListChange, blockIdentifier *xatu.BlockIdentifier, + execBlockNumber uint64, + execBlockHash string, ) (*xatu.DecoratedEvent, error) { metadata, ok := proto.Clone(b.clientMeta).(*xatu.ClientMeta) if !ok { @@ -376,7 +385,9 @@ func (b *BlockAccessListDeriver) createEvent( decoratedEvent.Meta.Client.AdditionalData = &xatu.ClientMeta_EthV2BeaconBlockAccessList{ EthV2BeaconBlockAccessList: &xatu.ClientMeta_AdditionalEthV2BeaconBlockAccessListData{ - Block: blockIdentifier, + Block: blockIdentifier, + BlockNumber: &wrapperspb.UInt64Value{Value: execBlockNumber}, + BlockHash: execBlockHash, }, } diff --git a/pkg/cannon/iterator/backfilling_checkpoint_iterator.go b/pkg/cannon/iterator/backfilling_checkpoint_iterator.go index b60c18059..7bfb51f6b 100644 --- a/pkg/cannon/iterator/backfilling_checkpoint_iterator.go +++ b/pkg/cannon/iterator/backfilling_checkpoint_iterator.go @@ -429,6 +429,8 @@ func (c *BackfillingCheckpoint) GetMarker(location *xatu.CannonLocation) (*xatu. marker = location.GetEthV1BeaconSyncCommittee().GetBackfillingCheckpointMarker() case xatu.CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_SYNC_AGGREGATE: marker = location.GetEthV2BeaconBlockSyncAggregate().GetBackfillingCheckpointMarker() + case xatu.CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST: + marker = location.GetEthV2BeaconBlockAccessList().GetBackfillingCheckpointMarker() default: return nil, errors.Errorf("unknown cannon type %s", location.Type) } @@ -564,6 +566,12 @@ func (c *BackfillingCheckpoint) createLocationFromEpochNumber(finalized, backfil BackfillingCheckpointMarker: marker, }, } + case xatu.CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST: + location.Data = &xatu.CannonLocation_EthV2BeaconBlockAccessList{ + EthV2BeaconBlockAccessList: &xatu.CannonLocationEthV2BeaconBlockAccessList{ + BackfillingCheckpointMarker: marker, + }, + } default: return location, errors.Errorf("unknown cannon type %s", location.Type) } diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.gen.go b/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.gen.go index 29f84dbba..22d642efa 100644 --- a/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.gen.go +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.gen.go @@ -24,7 +24,7 @@ type canonicalBeaconBlockAccessListBatch struct { Address route.SafeColFixedStr ChangeType proto.ColStr BlockAccessIndex proto.ColUInt32 - StorageKey *proto.ColNullable[string] + StorageKey route.SafeColFixedStr NewValue *proto.ColNullable[string] MetaClientName proto.ColStr MetaClientID proto.ColStr @@ -56,7 +56,7 @@ func newcanonicalBeaconBlockAccessListBatch() *canonicalBeaconBlockAccessListBat BlockRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), BlockHash: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), Address: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(42); return c }(), - StorageKey: new(proto.ColStr).Nullable(), + StorageKey: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), NewValue: new(proto.ColStr).Nullable(), MetaClientIP: new(proto.ColIPv6).Nullable(), MetaClientGeoLongitude: new(proto.ColFloat64).Nullable(), @@ -222,11 +222,7 @@ func (b *canonicalBeaconBlockAccessListBatch) Snapshot() []map[string]any { row["address"] = string(b.Address.Row(i)) row["change_type"] = b.ChangeType.Row(i) row["block_access_index"] = b.BlockAccessIndex.Row(i) - if v := b.StorageKey.Row(i); v.Set { - row["storage_key"] = v.Value - } else { - row["storage_key"] = nil - } + row["storage_key"] = string(b.StorageKey.Row(i)) if v := b.NewValue.Row(i); v.Set { row["new_value"] = v.Value } else { diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.go b/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.go index 6a9166386..750b8c9ee 100644 --- a/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.go +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.go @@ -83,9 +83,9 @@ func (b *canonicalBeaconBlockAccessListBatch) appendPayload(event *xatu.Decorate } if storageKey := change.GetStorageKey(); storageKey != nil { - b.StorageKey.Append(proto.NewNullable[string](storageKey.GetValue())) + b.StorageKey.Append([]byte(storageKey.GetValue())) } else { - b.StorageKey.Append(proto.Nullable[string]{}) + b.StorageKey.Append(nil) } if newValue := change.GetNewValue(); newValue != nil { @@ -114,6 +114,11 @@ func (b *canonicalBeaconBlockAccessListBatch) appendAdditionalData(event *xatu.D appendBlockIdentifier(additional.GetBlock(), &b.Slot, &b.SlotStartDateTime, &b.Epoch, &b.EpochStartDateTime, nil, &b.BlockRoot) - b.BlockNumber.Append(0) - b.BlockHash.Append(nil) + if blockNumber := additional.GetBlockNumber(); blockNumber != nil { + b.BlockNumber.Append(uint32(blockNumber.GetValue())) //nolint:gosec // block number fits uint32 + } else { + b.BlockNumber.Append(0) + } + + b.BlockHash.Append([]byte(additional.GetBlockHash())) } diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_access_list_test.go b/pkg/consumoor/route/canonical/canonical_beacon_block_access_list_test.go index dd4defac9..082a30636 100644 --- a/pkg/consumoor/route/canonical/canonical_beacon_block_access_list_test.go +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_access_list_test.go @@ -71,7 +71,7 @@ func TestSnapshot_canonical_beacon_block_access_list_balance(t *testing.T) { "address": "0xaabbccddee112233445566778899aabbccddeeff", "change_type": "balance", "block_access_index": uint32(2), - "storage_key": nil, + "storage_key": "", "new_value": "1000000000000000000", }) } diff --git a/pkg/proto/eth/v1/conversion.go b/pkg/proto/eth/v1/conversion.go index d24891053..c1702d877 100644 --- a/pkg/proto/eth/v1/conversion.go +++ b/pkg/proto/eth/v1/conversion.go @@ -11,7 +11,6 @@ import ( "github.com/attestantio/go-eth2-client/spec/phase0" "github.com/ethereum/go-ethereum/core/types/bal" "github.com/ethereum/go-ethereum/rlp" - "github.com/holiman/uint256" wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" ) @@ -371,36 +370,39 @@ func NewBlockAccessListFromGloas(rawBAL gloas.BlockAccessList) *BlockAccessList return &BlockAccessList{} } - var decoded bal.BlockAccessList - if err := rlp.DecodeBytes(rawBAL, &decoded); err != nil { + var accesses bal.BlockAccessList + if err := rlp.DecodeBytes(rawBAL, &accesses); err != nil { return &BlockAccessList{} } - entries := make([]*BlockAccessListEntry, 0, len(decoded.Accesses)) + entries := make([]*BlockAccessListEntry, 0, len(accesses)) - for i := range decoded.Accesses { - access := &decoded.Accesses[i] + for i := range accesses { + access := &accesses[i] entry := &BlockAccessListEntry{ Address: &wrapperspb.StringValue{Value: fmt.Sprintf("0x%x", access.Address)}, } // Storage changes: each slot has multiple writes keyed by tx index - for _, slotWrite := range access.StorageWrites { + for _, slotWrite := range access.StorageChanges { + slotHash := slotWrite.Slot.ToHash() + for _, write := range slotWrite.Accesses { + valueHash := write.ValueAfter.ToHash() + entry.StorageChanges = append(entry.StorageChanges, &BlockAccessListStorageChange{ BlockAccessIndex: &wrapperspb.UInt32Value{Value: uint32(write.TxIdx)}, - Key: &wrapperspb.StringValue{Value: fmt.Sprintf("0x%x", slotWrite.Slot)}, - NewValue: &wrapperspb.StringValue{Value: fmt.Sprintf("0x%x", write.ValueAfter)}, + Key: &wrapperspb.StringValue{Value: fmt.Sprintf("0x%x", slotHash)}, + NewValue: &wrapperspb.StringValue{Value: fmt.Sprintf("0x%x", valueHash)}, }) } } // Balance changes for _, change := range access.BalanceChanges { - postBalance := new(uint256.Int).SetBytes(change.Balance[:]) entry.BalanceChanges = append(entry.BalanceChanges, &BlockAccessListBalanceChange{ BlockAccessIndex: &wrapperspb.UInt32Value{Value: uint32(change.TxIdx)}, - PostBalance: &wrapperspb.StringValue{Value: postBalance.String()}, + PostBalance: &wrapperspb.StringValue{Value: change.Balance.String()}, }) } diff --git a/pkg/proto/eth/v1/conversion_test.go b/pkg/proto/eth/v1/conversion_test.go index 73dbe050d..3c1e2e34e 100644 --- a/pkg/proto/eth/v1/conversion_test.go +++ b/pkg/proto/eth/v1/conversion_test.go @@ -1,12 +1,8 @@ package v1 import ( - "bytes" + "encoding/hex" "testing" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types/bal" - "github.com/holiman/uint256" ) func TestTrimmedString(t *testing.T) { @@ -78,136 +74,57 @@ func TestNewBlockAccessListFromGloas_InvalidRLP(t *testing.T) { } } -func rlpEncodeBAL(t *testing.T, cbal *bal.ConstructionBlockAccessList) []byte { - t.Helper() - - var buf bytes.Buffer - if err := cbal.EncodeRLP(&buf); err != nil { - t.Fatalf("failed to RLP-encode BAL: %v", err) - } - - return buf.Bytes() -} - -func TestNewBlockAccessListFromGloas_BalanceChange(t *testing.T) { - addr := common.HexToAddress("0x1111111111111111111111111111111111111111") - - cbal := bal.NewConstructionBlockAccessList() - cbal.AccountRead(addr) - cbal.Accounts[addr].BalanceChanges[3] = uint256.NewInt(1000) - - encoded := rlpEncodeBAL(t, &cbal) - result := NewBlockAccessListFromGloas(encoded) - - if len(result.GetEntries()) != 1 { - t.Fatalf("expected 1 entry, got %d", len(result.GetEntries())) - } - - entry := result.GetEntries()[0] - if got := entry.GetAddress().GetValue(); got != "0x1111111111111111111111111111111111111111" { - t.Errorf("unexpected address: %s", got) - } - - if len(entry.GetBalanceChanges()) != 1 { - t.Fatalf("expected 1 balance change, got %d", len(entry.GetBalanceChanges())) - } - - bc := entry.GetBalanceChanges()[0] - if bc.GetBlockAccessIndex().GetValue() != 3 { - t.Errorf("expected block_access_index=3, got %d", bc.GetBlockAccessIndex().GetValue()) - } +// TestNewBlockAccessListFromGloas_RealDevnetData tests decoding real BAL data +// captured from a Gloas devnet beacon node (slot 200). Contains 4 entries: +// - Withdrawal Request Contract (reads only) +// - Consolidation Request Contract (reads only) +// - History Storage Contract (1 storage write) +// - Beacon Roots Contract (2 storage writes) +func TestNewBlockAccessListFromGloas_RealDevnetData(t *testing.T) { + rawHex := "f8d1de9400000961ef480eb55e80d19ad83579a64c007002c0c480010203c0c0c0" + + "de940000bbddc7ce488642fb579f8b00f3a590007251c0c480010203c0c0c0" + + "f841940000f90827f1c53a10cb7a02335b175320002935e7e681c7e3e280a02da04ac41c52c5ed22ac6e519822f2a3b5e852d835cab242548ba7cd531b8519c0c0c0c0" + + "f84e94000f3df6d732807ef1319fb7b8bb8522d0beac02f4cb821316c7c6808469c1e4ede7823315e3e280a03879f24e13e88a5db134e7092a18829d88875fc5c4252d3f27b21b7a96fd2e8bc0c0c0c0" - if bc.GetPostBalance().GetValue() != "1000" { - t.Errorf("expected post_balance=1000, got %s", bc.GetPostBalance().GetValue()) + rawBytes, err := hex.DecodeString(rawHex) + if err != nil { + t.Fatalf("failed to decode hex: %v", err) } -} - -func TestNewBlockAccessListFromGloas_NonceChange(t *testing.T) { - addr := common.HexToAddress("0x2222222222222222222222222222222222222222") - cbal := bal.NewConstructionBlockAccessList() - cbal.AccountRead(addr) - cbal.Accounts[addr].NonceChanges[1] = 42 + result := NewBlockAccessListFromGloas(rawBytes) - encoded := rlpEncodeBAL(t, &cbal) - result := NewBlockAccessListFromGloas(encoded) - - if len(result.GetEntries()) != 1 { - t.Fatalf("expected 1 entry, got %d", len(result.GetEntries())) + if len(result.GetEntries()) != 4 { + t.Fatalf("expected 4 entries, got %d", len(result.GetEntries())) } - entry := result.GetEntries()[0] - - if len(entry.GetNonceChanges()) != 1 { - t.Fatalf("expected 1 nonce change, got %d", len(entry.GetNonceChanges())) + // Entry 0: Withdrawal Request Contract - reads only, no writes + entry0 := result.GetEntries()[0] + if got := entry0.GetAddress().GetValue(); got != "0x00000961ef480eb55e80d19ad83579a64c007002" { + t.Errorf("entry 0 address: got %s", got) } - nc := entry.GetNonceChanges()[0] - if nc.GetBlockAccessIndex().GetValue() != 1 { - t.Errorf("expected block_access_index=1, got %d", nc.GetBlockAccessIndex().GetValue()) + if len(entry0.GetStorageChanges()) != 0 { + t.Errorf("entry 0: expected 0 storage changes, got %d", len(entry0.GetStorageChanges())) } - if nc.GetNewNonce().GetValue() != 42 { - t.Errorf("expected new_nonce=42, got %d", nc.GetNewNonce().GetValue()) + // Entry 2: History Storage Contract - 1 storage write + entry2 := result.GetEntries()[2] + if len(entry2.GetStorageChanges()) != 1 { + t.Fatalf("entry 2: expected 1 storage change, got %d", len(entry2.GetStorageChanges())) } -} - -func TestNewBlockAccessListFromGloas_StorageChange(t *testing.T) { - addr := common.HexToAddress("0x3333333333333333333333333333333333333333") - slot := common.HexToHash("0x0000000000000000000000000000000000000000000000000000000000000001") - value := common.HexToHash("0x00000000000000000000000000000000000000000000000000000000000000ff") - - cbal := bal.NewConstructionBlockAccessList() - cbal.AccountRead(addr) - cbal.Accounts[addr].StorageWrites[slot] = map[uint16]common.Hash{ - 2: value, - } - - encoded := rlpEncodeBAL(t, &cbal) - result := NewBlockAccessListFromGloas(encoded) - - if len(result.GetEntries()) != 1 { - t.Fatalf("expected 1 entry, got %d", len(result.GetEntries())) - } - - entry := result.GetEntries()[0] - - if len(entry.GetStorageChanges()) != 1 { - t.Fatalf("expected 1 storage change, got %d", len(entry.GetStorageChanges())) - } - - sc := entry.GetStorageChanges()[0] - if sc.GetBlockAccessIndex().GetValue() != 2 { - t.Errorf("expected block_access_index=2, got %d", sc.GetBlockAccessIndex().GetValue()) - } -} - -func TestNewBlockAccessListFromGloas_CodeChange(t *testing.T) { - addr := common.HexToAddress("0x4444444444444444444444444444444444444444") - - cbal := bal.NewConstructionBlockAccessList() - cbal.AccountRead(addr) - cbal.Accounts[addr].CodeChange[7] = []byte{0x60, 0x80, 0x60, 0x40} - - encoded := rlpEncodeBAL(t, &cbal) - result := NewBlockAccessListFromGloas(encoded) - - if len(result.GetEntries()) != 1 { - t.Fatalf("expected 1 entry, got %d", len(result.GetEntries())) - } - - entry := result.GetEntries()[0] - if len(entry.GetCodeChanges()) != 1 { - t.Fatalf("expected 1 code change, got %d", len(entry.GetCodeChanges())) + sc := entry2.GetStorageChanges()[0] + if sc.GetBlockAccessIndex().GetValue() != 0 { + t.Errorf("expected block_access_index=0, got %d", sc.GetBlockAccessIndex().GetValue()) } - cc := entry.GetCodeChanges()[0] - if cc.GetBlockAccessIndex().GetValue() != 7 { - t.Errorf("expected block_access_index=7, got %d", cc.GetBlockAccessIndex().GetValue()) + // Entry 3: Beacon Roots Contract - 2 storage writes + entry3 := result.GetEntries()[3] + if got := entry3.GetAddress().GetValue(); got != "0x000f3df6d732807ef1319fb7b8bb8522d0beac02" { + t.Errorf("entry 3 address: got %s", got) } - if cc.GetNewCode().GetValue() != "0x60806040" { - t.Errorf("expected new_code=0x60806040, got %s", cc.GetNewCode().GetValue()) + if len(entry3.GetStorageChanges()) != 2 { + t.Fatalf("entry 3: expected 2 storage changes, got %d", len(entry3.GetStorageChanges())) } } diff --git a/pkg/proto/xatu/event_ingester.pb.go b/pkg/proto/xatu/event_ingester.pb.go index 045c95c20..6400beef4 100644 --- a/pkg/proto/xatu/event_ingester.pb.go +++ b/pkg/proto/xatu/event_ingester.pb.go @@ -8230,6 +8230,10 @@ type ClientMeta_AdditionalEthV2BeaconBlockAccessListData struct { // Block contains the information about the block that we are deriving the // access list from. Block *BlockIdentifier `protobuf:"bytes,1,opt,name=block,proto3" json:"block,omitempty"` + // Execution block number from the execution payload. + BlockNumber *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"` + // Execution block hash from the execution payload (hex encoded). + BlockHash string `protobuf:"bytes,3,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"` } func (x *ClientMeta_AdditionalEthV2BeaconBlockAccessListData) Reset() { @@ -8271,6 +8275,20 @@ func (x *ClientMeta_AdditionalEthV2BeaconBlockAccessListData) GetBlock() *BlockI return nil } +func (x *ClientMeta_AdditionalEthV2BeaconBlockAccessListData) GetBlockNumber() *wrapperspb.UInt64Value { + if x != nil { + return x.BlockNumber + } + return nil +} + +func (x *ClientMeta_AdditionalEthV2BeaconBlockAccessListData) GetBlockHash() string { + if x != nil { + return x.BlockHash + } + return "" +} + type ClientMeta_AttestationDataSnapshot struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -13279,7 +13297,7 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, - 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22, 0xa3, 0xf3, 0x01, + 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22, 0x84, 0xf4, 0x01, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, @@ -14524,1807 +14542,1813 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, - 0x57, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x8b, 0x02, 0x0a, 0x17, 0x41, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x12, 0x66, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, - 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1f, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x12, 0x4e, 0x0a, 0x13, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0xdc, 0x02, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0xb7, 0x01, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x3f, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x8b, 0x02, 0x0a, 0x17, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x66, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1f, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x12, 0x4e, 0x0a, + 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x38, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0xdc, 0x02, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, - 0x44, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x08, 0x73, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x1a, 0xa4, 0x01, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, - 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, - 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, - 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xaa, 0x01, 0x0a, - 0x2a, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, - 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, - 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, - 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x99, 0x02, 0x0a, 0x24, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, - 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, - 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x46, 0x0a, - 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0xa9, 0x04, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x06, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, - 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, - 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, - 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, - 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, - 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x04, 0x70, 0x65, - 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, - 0x72, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, - 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x1a, 0x84, 0x01, 0x0a, 0x1f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x45, 0x74, 0x68, 0x56, 0x31, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, - 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x97, 0x03, 0x0a, 0x33, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, - 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x12, 0x44, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x08, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x1a, 0xa4, 0x01, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, + 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, + 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xaa, 0x01, + 0x0a, 0x2a, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, + 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, + 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x99, 0x02, 0x0a, 0x24, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, + 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, + 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x46, + 0x0a, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0xa9, 0x04, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, + 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, + 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, + 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, + 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, + 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, + 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x04, 0x70, + 0x65, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, + 0x65, 0x72, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, + 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x1a, 0x84, 0x01, 0x0a, 0x1f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, + 0x74, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x97, 0x03, 0x0a, 0x33, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, + 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, + 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, - 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x41, 0x64, 0x64, 0x50, 0x65, - 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x1a, 0x62, 0x0a, 0x23, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x52, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, + 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x41, 0x64, 0x64, 0x50, + 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x1a, 0x62, 0x0a, 0x23, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, - 0x65, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, + 0x65, 0x52, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, + 0x63, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, + 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x49, 0x48, 0x61, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x57, - 0x61, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6f, 0x0a, 0x30, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, - 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x44, 0x6f, 0x6e, 0x74, + 0x61, 0x63, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, + 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x49, 0x48, 0x61, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, + 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, + 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x57, 0x61, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6f, 0x0a, 0x30, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, - 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61, 0x66, - 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, - 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, - 0x5c, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, - 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x44, 0x6f, 0x6e, + 0x74, 0x57, 0x61, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, + 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61, + 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, + 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x1a, 0x5c, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, + 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, + 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, + 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, - 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x72, 0x61, 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x72, 0x61, 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, 0x1e, 0x41, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x68, 0x0a, 0x29, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x68, 0x0a, 0x29, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x65, 0x6c, - 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x72, 0x61, 0x63, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x65, + 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, + 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, + 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x65, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, + 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, + 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x61, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x1a, 0x65, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6a, - 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, - 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x61, 0x0a, 0x22, 0x41, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, + 0x64, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6a, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x79, + 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x64, 0x0a, 0x25, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, + 0x60, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x1a, 0xa7, 0x02, 0x0a, 0x32, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x70, 0x63, 0x44, 0x61, + 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x50, + 0x72, 0x6f, 0x62, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, + 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, + 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x64, - 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, - 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6a, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, - 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, - 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, + 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x64, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, - 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x60, - 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, - 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, + 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x1a, 0xa7, 0x02, 0x0a, 0x32, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, - 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x70, 0x63, 0x44, 0x61, 0x74, - 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x50, 0x72, - 0x6f, 0x62, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, - 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, 0x77, - 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, - 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, - 0x8d, 0x04, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, - 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, - 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, - 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, - 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, - 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x1a, 0x8d, 0x04, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, + 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, - 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, - 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, - 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, - 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, - 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, - 0x60, 0x0a, 0x39, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, + 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, + 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, + 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, + 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x1a, 0x60, 0x0a, 0x39, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, + 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, + 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x1a, 0x60, 0x0a, 0x39, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, + 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xa9, 0x06, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, + 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x62, 0x0a, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x12, 0x62, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x4a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x1a, 0x60, 0x0a, 0x39, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, - 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, - 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, - 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x1a, 0xa9, 0x06, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, - 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x62, 0x0a, 0x06, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, - 0x62, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x4a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, - 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, - 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, + 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, 0x70, + 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, 0x61, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, + 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, - 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, - 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, - 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, + 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x1a, 0xdd, 0x04, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, + 0x53, 0x75, 0x62, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x64, 0x50, + 0x72, 0x6f, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, + 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, - 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x3b, - 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, - 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, - 0xdd, 0x04, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, - 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, - 0x75, 0x62, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x72, - 0x6f, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, - 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, - 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, - 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, - 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3b, - 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, - 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, - 0x8d, 0x04, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, - 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, - 0x75, 0x62, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, - 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, - 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, - 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, + 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x1a, 0x8d, 0x04, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, + 0x53, 0x75, 0x62, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, - 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, - 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, - 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, - 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, - 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, - 0x93, 0x04, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, - 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, - 0x75, 0x62, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, - 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, + 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, + 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, + 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, + 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x1a, 0x93, 0x04, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, + 0x53, 0x75, 0x62, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, + 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, + 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, + 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x44, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, - 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, + 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xc2, 0x03, 0x0a, + 0x34, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, + 0x6c, 0x61, 0x79, 0x42, 0x69, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, + 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, + 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, + 0x79, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, + 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, - 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, - 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x44, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xc2, 0x03, 0x0a, 0x34, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, - 0x61, 0x79, 0x42, 0x69, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, - 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, - 0x6c, 0x61, 0x79, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, - 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, - 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x54, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, - 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x15, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x1a, 0xb4, 0x03, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, - 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, - 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x05, 0x72, - 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, - 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, - 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, - 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, - 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, - 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, - 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x54, 0x0a, - 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, - 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, - 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, - 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0x96, 0x06, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x33, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, - 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, - 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4c, - 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, - 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x18, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x54, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, + 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x1a, 0xb4, 0x03, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, + 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x05, + 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x52, 0x65, 0x6c, 0x61, + 0x79, 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, + 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, + 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, + 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, + 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, + 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x54, + 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, + 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x6e, 0x0a, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x65, 0x52, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, + 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0x96, 0x06, 0x0a, 0x21, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x33, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, + 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x4c, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, - 0x73, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x4e, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, - 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x1a, 0xd7, 0x02, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, - 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, - 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x04, - 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x34, - 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, - 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x58, 0x0a, + 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x6e, 0x0a, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x28, 0x0a, + 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, + 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x4e, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, + 0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x1a, 0xd7, 0x02, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, + 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x20, 0x0a, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, + 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, + 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, + 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, - 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, + 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x12, 0x46, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0xb4, 0x01, 0x0a, 0x21, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x36, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x29, 0x0a, 0x09, 0x68, 0x65, 0x61, + 0x64, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x08, 0x68, 0x65, 0x61, 0x64, + 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x2c, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x09, 0x68, 0x65, 0x61, 0x64, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x1a, 0x73, 0x0a, 0x2a, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, + 0x50, 0x49, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, + 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x71, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, - 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x12, 0x46, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0xb4, 0x01, 0x0a, 0x21, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x36, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x29, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x64, - 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x08, 0x68, 0x65, 0x61, 0x64, 0x53, - 0x6c, 0x6f, 0x74, 0x12, 0x2c, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x09, 0x68, 0x65, 0x61, 0x64, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x1a, 0x73, 0x0a, 0x2a, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, - 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, - 0x49, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, - 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x71, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, - 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, - 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, - 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x66, 0x0a, 0x1d, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, - 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, - 0x61, 0x74, 0x61, 0x22, 0x89, 0x10, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, - 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, - 0x74, 0x61, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x12, 0x6d, 0x0a, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, - 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, + 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x66, 0x0a, 0x1d, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x44, 0x61, 0x74, 0x61, 0x22, 0x89, 0x10, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x12, 0x6d, 0x0a, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, + 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x12, 0x6d, 0x0a, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x12, 0x6d, 0x0a, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, - 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, - 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, - 0x76, 0x0a, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, - 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, - 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x19, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, - 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x6a, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, - 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, - 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, - 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, - 0x53, 0x55, 0x53, 0x12, 0x6a, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, - 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, - 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, - 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x12, - 0x8a, 0x01, 0x0a, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, - 0x42, 0x45, 0x41, 0x54, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, - 0x62, 0x65, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x20, 0x4c, 0x49, 0x42, 0x50, - 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, - 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x12, 0x6a, 0x0a, 0x15, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, - 0x4e, 0x54, 0x49, 0x46, 0x59, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, + 0x12, 0x76, 0x0a, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x19, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, + 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x6a, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, + 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, + 0x53, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, + 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4e, + 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, + 0x4e, 0x53, 0x55, 0x53, 0x12, 0x6a, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, + 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, + 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, + 0x12, 0x8a, 0x01, 0x0a, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, + 0x54, 0x42, 0x45, 0x41, 0x54, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, - 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x1a, 0x53, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x12, 0x4a, 0x0a, 0x12, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, - 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0xb7, 0x02, - 0x0a, 0x03, 0x47, 0x65, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, - 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, - 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, - 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x6e, - 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x6f, - 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x38, 0x0a, 0x16, 0x41, 0x75, 0x74, 0x6f, 0x6e, - 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, - 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x44, 0x0a, 0x1c, 0x41, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, - 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x6a, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x50, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x70, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, - 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, - 0x12, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, - 0x73, 0x65, 0x72, 0x1a, 0x2e, 0x0a, 0x04, 0x50, 0x65, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x03, 0x67, - 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, - 0x67, 0x65, 0x6f, 0x1a, 0x4f, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, - 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4f, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, + 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, + 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x20, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, + 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x12, 0x6a, 0x0a, + 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, + 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x61, + 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x1a, 0x53, 0x0a, 0x05, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x12, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0xb7, + 0x02, 0x0a, 0x03, 0x47, 0x65, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x69, + 0x6e, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, + 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, + 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x38, 0x0a, 0x16, 0x41, 0x75, 0x74, 0x6f, + 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f, + 0x6d, 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1c, 0x41, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f, + 0x6d, 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x6a, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x50, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x70, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, + 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x12, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x75, 0x73, 0x65, 0x72, 0x1a, 0x2e, 0x0a, 0x04, 0x50, 0x65, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x03, + 0x67, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, + 0x03, 0x67, 0x65, 0x6f, 0x1a, 0x4f, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, - 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x52, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, - 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, - 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, - 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x58, 0x0a, 0x2b, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, - 0x62, 0x65, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, - 0x65, 0x65, 0x72, 0x1a, 0x4e, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, - 0x65, 0x65, 0x72, 0x1a, 0x4b, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, - 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, - 0x1a, 0x4b, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, - 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x42, 0x10, 0x0a, - 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, - 0x5a, 0x0a, 0x04, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x12, 0x28, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, - 0x65, 0x74, 0x61, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0xe6, 0x1c, 0x0a, 0x05, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xec, 0x1b, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, - 0x0a, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, - 0x57, 0x4e, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, - 0x10, 0x02, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, - 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, - 0x49, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, - 0x58, 0x49, 0x54, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4f, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, + 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, + 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x52, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, + 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x58, 0x0a, 0x2b, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, + 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, + 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, + 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4e, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, + 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4b, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, + 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, + 0x6f, 0x1a, 0x4b, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, + 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x42, 0x10, + 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, + 0x22, 0x5a, 0x0a, 0x04, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x61, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0xe6, 0x1c, 0x0a, + 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xec, 0x1b, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x24, 0x0a, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, + 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, - 0x33, 0x0a, 0x2f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, - 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, - 0x4f, 0x46, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, - 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x12, 0x22, 0x0a, - 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, - 0x09, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, - 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x10, 0x0a, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, - 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x10, - 0x0c, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, - 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, - 0x41, 0x10, 0x0d, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x10, 0x0e, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, - 0x52, 0x47, 0x5f, 0x56, 0x32, 0x10, 0x0f, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, - 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x56, 0x32, 0x10, 0x10, 0x12, 0x24, 0x0a, - 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x56, - 0x32, 0x10, 0x11, 0x12, 0x2e, 0x0a, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, - 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x5f, 0x56, - 0x32, 0x10, 0x12, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, + 0x47, 0x10, 0x02, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, - 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x10, 0x13, - 0x12, 0x36, 0x0a, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, + 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, + 0x45, 0x58, 0x49, 0x54, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, + 0x12, 0x33, 0x0a, 0x2f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, - 0x4f, 0x4f, 0x46, 0x5f, 0x56, 0x32, 0x10, 0x14, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x45, 0x4d, 0x50, - 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x56, 0x32, 0x10, 0x15, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x10, 0x16, 0x12, 0x2a, 0x0a, 0x26, 0x42, + 0x4f, 0x4f, 0x46, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, + 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x12, 0x22, + 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x10, 0x09, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, + 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x10, 0x0a, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, - 0x43, 0x45, 0x5f, 0x56, 0x32, 0x10, 0x17, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, - 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, - 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x10, 0x18, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, - 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x19, 0x12, - 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, - 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, - 0x49, 0x4e, 0x47, 0x10, 0x1a, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, + 0x10, 0x0c, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, + 0x52, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, + 0x54, 0x41, 0x10, 0x0d, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x10, 0x0e, 0x12, 0x2b, 0x0a, 0x27, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, + 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x10, 0x0f, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, + 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x56, 0x32, 0x10, 0x10, 0x12, 0x24, + 0x0a, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x5f, + 0x56, 0x32, 0x10, 0x11, 0x12, 0x2e, 0x0a, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, + 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x5f, + 0x56, 0x32, 0x10, 0x12, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, + 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x10, + 0x13, 0x12, 0x36, 0x0a, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, + 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, + 0x52, 0x4f, 0x4f, 0x46, 0x5f, 0x56, 0x32, 0x10, 0x14, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x45, 0x4d, + 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x56, 0x32, 0x10, 0x15, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, - 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x10, 0x1b, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, - 0x49, 0x54, 0x10, 0x1c, 0x12, 0x3a, 0x0a, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, - 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x1d, - 0x12, 0x38, 0x0a, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, - 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x1e, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, + 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x10, 0x16, 0x12, 0x2a, 0x0a, 0x26, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, + 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, + 0x49, 0x43, 0x45, 0x5f, 0x56, 0x32, 0x10, 0x17, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, + 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, + 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x10, 0x18, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, - 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, 0x4c, 0x10, 0x1f, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, - 0x41, 0x52, 0x10, 0x20, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x22, 0x12, - 0x1a, 0x0a, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, - 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x23, 0x12, 0x23, 0x0a, 0x1f, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x10, 0x24, - 0x12, 0x39, 0x0a, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, + 0x45, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x19, + 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, - 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x25, 0x12, 0x1a, 0x0a, 0x16, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, - 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x26, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, - 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, - 0x43, 0x54, 0x45, 0x44, 0x10, 0x27, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, - 0x28, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x29, 0x12, - 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, - 0x52, 0x45, 0x43, 0x56, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2a, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, - 0x52, 0x50, 0x43, 0x10, 0x2b, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2c, - 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x10, 0x2d, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x49, 0x42, 0x50, 0x32, - 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, - 0x2e, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, - 0x41, 0x10, 0x2f, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x10, 0x30, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x31, 0x12, 0x2d, 0x0a, 0x29, + 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, + 0x48, 0x49, 0x4e, 0x47, 0x10, 0x1a, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, + 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x10, 0x1b, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, + 0x53, 0x49, 0x54, 0x10, 0x1c, 0x12, 0x3a, 0x0a, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, + 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, + 0x1d, 0x12, 0x38, 0x0a, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, + 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x1e, 0x12, 0x2d, 0x0a, 0x29, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, + 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, 0x4c, 0x10, 0x1f, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, + 0x43, 0x41, 0x52, 0x10, 0x20, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x22, + 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, + 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x23, 0x12, 0x23, 0x0a, 0x1f, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, + 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x10, + 0x24, 0x12, 0x39, 0x0a, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, + 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x25, 0x12, 0x1a, 0x0a, 0x16, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x26, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x49, 0x42, 0x50, + 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, + 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x27, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, + 0x10, 0x28, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x29, + 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2a, 0x12, 0x19, 0x0a, 0x15, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, + 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2b, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, 0x10, + 0x2c, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x10, 0x2d, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x49, 0x42, 0x50, + 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x10, 0x2e, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, + 0x54, 0x41, 0x10, 0x2f, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x10, 0x30, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x31, 0x12, 0x2d, 0x0a, + 0x29, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, + 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x32, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, - 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x54, - 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x32, 0x12, 0x27, 0x0a, 0x23, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, - 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, - 0x41, 0x52, 0x10, 0x33, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x10, 0x34, 0x12, 0x30, 0x0a, - 0x2c, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x49, 0x44, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x35, 0x12, - 0x28, 0x0a, 0x24, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x50, 0x52, 0x4f, - 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x45, - 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x36, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x33, 0x5f, 0x56, - 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x37, - 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x56, 0x41, - 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x38, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x10, - 0x39, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0x3a, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x10, - 0x3b, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x10, 0x3c, 0x12, 0x22, 0x0a, 0x1e, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, - 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x3d, 0x12, 0x20, 0x0a, - 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x45, - 0x4c, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x3e, 0x12, - 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, - 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, - 0x3f, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, - 0x10, 0x40, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, + 0x43, 0x41, 0x52, 0x10, 0x33, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x10, 0x34, 0x12, 0x30, + 0x0a, 0x2c, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x49, 0x44, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x35, + 0x12, 0x28, 0x0a, 0x24, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x50, 0x52, + 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, + 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x36, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x33, 0x5f, + 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, + 0x37, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x56, + 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x38, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, + 0x10, 0x39, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0x3a, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, + 0x10, 0x3b, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x10, 0x3c, 0x12, 0x22, 0x0a, 0x1e, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, + 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x3d, 0x12, 0x20, + 0x0a, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, + 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x3e, + 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x10, 0x3f, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, + 0x45, 0x10, 0x40, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, + 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x48, 0x41, 0x56, 0x45, 0x10, 0x41, 0x12, 0x27, 0x0a, 0x23, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, + 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x57, + 0x41, 0x4e, 0x54, 0x10, 0x42, 0x12, 0x2b, 0x0a, 0x27, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, + 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x44, 0x4f, 0x4e, 0x54, 0x57, 0x41, 0x4e, 0x54, + 0x10, 0x43, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, - 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x48, 0x41, 0x56, 0x45, 0x10, 0x41, 0x12, 0x27, 0x0a, 0x23, 0x4c, + 0x52, 0x4f, 0x4c, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x10, 0x44, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, - 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x57, 0x41, - 0x4e, 0x54, 0x10, 0x42, 0x12, 0x2b, 0x0a, 0x27, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, - 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x44, 0x4f, 0x4e, 0x54, 0x57, 0x41, 0x4e, 0x54, 0x10, - 0x43, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, - 0x4f, 0x4c, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x10, 0x44, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, - 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x55, 0x4e, - 0x45, 0x10, 0x45, 0x12, 0x26, 0x0a, 0x22, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x53, 0x55, 0x42, - 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x46, 0x12, 0x21, 0x0a, 0x1d, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, - 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x47, 0x12, 0x19, - 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, - 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x10, 0x48, 0x12, 0x19, 0x0a, 0x15, 0x4e, 0x4f, 0x44, - 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, - 0x4f, 0x4e, 0x10, 0x49, 0x12, 0x2e, 0x0a, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x41, - 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, - 0x4f, 0x46, 0x10, 0x4a, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, - 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, - 0x45, 0x43, 0x41, 0x52, 0x10, 0x4b, 0x12, 0x2e, 0x0a, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, - 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, - 0x45, 0x43, 0x41, 0x52, 0x10, 0x4c, 0x12, 0x24, 0x0a, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, - 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x10, 0x4d, 0x12, 0x2e, 0x0a, 0x2a, + 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x55, + 0x4e, 0x45, 0x10, 0x45, 0x12, 0x26, 0x0a, 0x22, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x53, 0x55, + 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x46, 0x12, 0x21, 0x0a, 0x1d, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, - 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x43, 0x55, 0x53, - 0x54, 0x4f, 0x44, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x10, 0x4e, 0x12, 0x18, 0x0a, 0x14, - 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, - 0x53, 0x49, 0x5a, 0x45, 0x10, 0x4f, 0x12, 0x24, 0x0a, 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, - 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x4e, - 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x50, 0x12, 0x22, 0x0a, 0x1e, - 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x10, 0x51, - 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, - 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, - 0x10, 0x52, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, - 0x10, 0x53, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, - 0x4c, 0x4f, 0x42, 0x10, 0x54, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, - 0x10, 0x55, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, - 0x41, 0x54, 0x45, 0x10, 0x56, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x53, - 0x10, 0x57, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x10, 0x58, 0x12, 0x2e, 0x0a, - 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, - 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x59, 0x22, 0x04, 0x08, - 0x21, 0x10, 0x21, 0x2a, 0x1f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x50, 0x52, 0x49, 0x4e, 0x54, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x22, 0xf9, 0x10, 0x0a, 0x15, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, - 0x75, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, - 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, - 0x65, 0x64, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x0c, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x42, - 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, - 0x6d, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x5f, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, - 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x5f, 0x6d, 0x73, 0x12, 0x3a, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x5f, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, - 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, - 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x12, 0x40, 0x0a, 0x0c, - 0x6d, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x0c, 0x6d, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x12, 0x48, - 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x64, 0x73, 0x52, 0x0b, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x73, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x77, - 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x61, - 0x63, 0x68, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, - 0x61, 0x63, 0x68, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, - 0x65, 0x12, 0x4a, 0x0a, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x1a, 0xfa, 0x01, - 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x08, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x47, 0x12, + 0x19, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, + 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x10, 0x48, 0x12, 0x19, 0x0a, 0x15, 0x4e, 0x4f, + 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, + 0x49, 0x4f, 0x4e, 0x10, 0x49, 0x12, 0x2e, 0x0a, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, + 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, + 0x4f, 0x4f, 0x46, 0x10, 0x4a, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, + 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x4b, 0x12, 0x2e, 0x0a, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, + 0x42, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, + 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x4c, 0x12, 0x24, 0x0a, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, + 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x10, 0x4d, 0x12, 0x2e, 0x0a, + 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, + 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x43, 0x55, + 0x53, 0x54, 0x4f, 0x44, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x10, 0x4e, 0x12, 0x18, 0x0a, + 0x14, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x4f, 0x12, 0x24, 0x0a, 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x45, + 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x50, 0x12, 0x22, 0x0a, + 0x1e, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, + 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x10, + 0x51, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, + 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, + 0x44, 0x10, 0x52, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, + 0x53, 0x10, 0x53, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x42, 0x4c, 0x4f, 0x42, 0x10, 0x54, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, + 0x45, 0x10, 0x55, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, + 0x47, 0x41, 0x54, 0x45, 0x10, 0x56, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, + 0x53, 0x10, 0x57, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x10, 0x58, 0x12, 0x2e, + 0x0a, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x59, 0x22, 0x04, + 0x08, 0x21, 0x10, 0x21, 0x2a, 0x1f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x50, 0x52, 0x49, 0x4e, 0x54, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x22, 0xf9, 0x10, 0x0a, 0x15, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x63, 0x6f, - 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x0a, - 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, - 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x99, 0x03, 0x0a, 0x0b, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x12, 0x48, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, + 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, + 0x73, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, + 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, + 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x73, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, + 0x5f, 0x6d, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x5f, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, + 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6d, 0x73, 0x12, 0x3a, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x5f, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, + 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x5f, 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x12, 0x40, 0x0a, + 0x0c, 0x6d, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x0c, 0x6d, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x12, + 0x48, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x64, 0x73, 0x52, 0x0b, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x73, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, + 0x61, 0x63, 0x68, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, + 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x61, 0x63, + 0x68, 0x65, 0x12, 0x4a, 0x0a, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x1a, 0xfa, + 0x01, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x64, 0x73, 0x12, 0x38, 0x0a, + 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x42, - 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, - 0x74, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, - 0x6f, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, + 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x15, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x64, 0x65, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x1a, 0xac, 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x04, 0x68, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x04, 0x68, 0x69, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x68, - 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x99, 0x03, 0x0a, 0x0b, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x68, 0x69, 0x74, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x1a, 0xa8, 0x02, 0x0a, 0x0e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x04, 0x68, 0x69, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x04, 0x68, 0x69, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x6d, 0x69, 0x73, - 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, 0x38, - 0x0a, 0x08, 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, - 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x68, 0x69, 0x74, 0x5f, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, - 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x48, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, + 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, + 0x6f, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x15, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x64, + 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x64, + 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x1a, 0xac, 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x04, 0x68, 0x69, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x04, 0x68, 0x69, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x22, 0xdc, 0x48, 0x0a, 0x0e, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, - 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x4d, 0x65, 0x74, 0x61, - 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x67, 0x0a, 0x19, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, - 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, - 0x5a, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x6b, 0x0a, 0x19, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x42, 0x02, 0x18, 0x01, - 0x48, 0x00, 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, - 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x12, 0x86, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x02, 0x18, 0x01, - 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, - 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, - 0x54, 0x12, 0x57, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, + 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x68, 0x69, + 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x1a, 0xa8, 0x02, 0x0a, 0x0e, 0x43, 0x6f, 0x64, 0x65, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x04, 0x68, 0x69, 0x74, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x68, 0x69, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x6d, 0x69, + 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, + 0x38, 0x0a, 0x08, 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x08, 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x68, 0x69, 0x74, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x68, 0x69, 0x74, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x22, 0xdc, 0x48, 0x0a, 0x0e, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x4d, 0x65, 0x74, + 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x67, 0x0a, 0x19, 0x65, 0x74, 0x68, 0x5f, 0x76, + 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x12, 0x5a, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x48, 0x65, 0x61, 0x64, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x1d, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x12, 0x74, 0x0a, 0x1c, 0x65, 0x74, - 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, - 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, - 0x74, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, - 0x12, 0x8b, 0x01, 0x0a, 0x24, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, - 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x2f, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x12, 0x36, - 0x0a, 0x13, 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x48, - 0x00, 0x52, 0x13, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x5a, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, - 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x02, 0x18, 0x01, - 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x12, 0x5e, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, - 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, - 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x23, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, - 0x43, 0x45, 0x12, 0x6d, 0x0a, 0x18, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, - 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x44, 0x65, 0x62, 0x75, - 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, - 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, - 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, - 0x47, 0x12, 0x5d, 0x0a, 0x17, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x48, 0x00, 0x52, 0x22, 0x42, 0x45, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, - 0x12, 0x79, 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2c, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, - 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x12, 0x6b, 0x0a, 0x1c, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x32, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, 0x52, - 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, - 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x76, 0x32, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x12, 0x6f, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, - 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, - 0x72, 0x65, 0x6f, 0x72, 0x67, 0x5f, 0x76, 0x32, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x48, 0x00, - 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, - 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x12, 0x8a, 0x01, 0x0a, 0x25, 0x65, 0x74, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x6b, 0x0a, 0x19, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x42, 0x02, 0x18, + 0x01, 0x48, 0x00, 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, + 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x12, 0x86, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x5f, 0x76, 0x32, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6e, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x56, 0x32, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, - 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, - 0x49, 0x4e, 0x54, 0x5f, 0x56, 0x32, 0x12, 0x5b, 0x0a, 0x15, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, - 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x76, 0x32, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x56, 0x32, 0x48, - 0x00, 0x52, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, - 0x5f, 0x56, 0x32, 0x12, 0x78, 0x0a, 0x1f, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, - 0x78, 0x69, 0x74, 0x5f, 0x76, 0x32, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, 0x48, - 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, - 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x5f, 0x56, 0x32, 0x12, 0x8f, 0x01, - 0x0a, 0x27, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x64, - 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x76, 0x32, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, - 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x32, 0x48, 0x00, 0x52, 0x32, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x5f, 0x56, 0x32, 0x12, - 0x38, 0x0a, 0x16, 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x32, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x16, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x76, 0x32, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x12, 0x62, 0x0a, 0x15, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, - 0x76, 0x32, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x56, 0x32, 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, - 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x56, 0x32, 0x12, 0x71, 0x0a, - 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x5f, 0x76, 0x32, 0x18, 0x1a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, - 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, - 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, - 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, - 0x12, 0x82, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x56, - 0x32, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x02, 0x18, + 0x01, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, + 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, + 0x4e, 0x54, 0x12, 0x57, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x1d, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x12, 0x74, 0x0a, 0x1c, 0x65, + 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, + 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, + 0x69, 0x74, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, + 0x54, 0x12, 0x8b, 0x01, 0x0a, 0x24, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x2f, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, + 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, + 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x12, + 0x36, 0x0a, 0x13, 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x13, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, + 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x5a, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, + 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x02, 0x18, + 0x01, 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, - 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0x82, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, - 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, - 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, - 0x68, 0x69, 0x6e, 0x67, 0x56, 0x32, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, - 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0x7f, 0x0a, 0x22, 0x65, 0x74, + 0x4f, 0x43, 0x4b, 0x12, 0x5e, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, + 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, + 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x23, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, + 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, + 0x49, 0x43, 0x45, 0x12, 0x6d, 0x0a, 0x18, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, + 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x44, 0x65, 0x62, + 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, + 0x67, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, + 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, + 0x52, 0x47, 0x12, 0x5d, 0x0a, 0x17, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x48, 0x00, 0x52, 0x22, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, + 0x45, 0x12, 0x79, 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2c, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, + 0x31, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x45, + 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x12, 0x6b, 0x0a, 0x1c, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x32, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, + 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, + 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x76, 0x32, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x12, 0x6f, 0x0a, 0x1c, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x5f, 0x76, 0x32, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x48, + 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, + 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x12, 0x8a, 0x01, 0x0a, 0x25, 0x65, + 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x5f, 0x76, 0x32, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, + 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, + 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, + 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x56, 0x32, 0x12, 0x5b, 0x0a, 0x15, 0x65, 0x74, 0x68, 0x5f, 0x76, + 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x76, 0x32, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x56, 0x32, + 0x48, 0x00, 0x52, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, + 0x44, 0x5f, 0x56, 0x32, 0x12, 0x78, 0x0a, 0x1f, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, + 0x65, 0x78, 0x69, 0x74, 0x5f, 0x76, 0x32, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, + 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, + 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x5f, 0x56, 0x32, 0x12, 0x8f, + 0x01, 0x0a, 0x27, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, + 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x76, 0x32, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x32, 0x48, 0x00, 0x52, 0x32, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x5f, 0x56, 0x32, + 0x12, 0x38, 0x0a, 0x16, 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x32, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x16, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, + 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, - 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, - 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, - 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x12, 0x65, 0x0a, 0x1b, 0x65, + 0x6b, 0x5f, 0x76, 0x32, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x12, 0x62, 0x0a, 0x15, 0x65, 0x74, + 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x5f, 0x76, 0x32, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x56, 0x32, 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, + 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x56, 0x32, 0x12, 0x71, + 0x0a, 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x5f, 0x76, 0x32, 0x18, 0x1a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, + 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, + 0x32, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, + 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, + 0x32, 0x12, 0x82, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, + 0x56, 0x32, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, + 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, + 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0x82, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, + 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, + 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, + 0x73, 0x68, 0x69, 0x6e, 0x67, 0x56, 0x32, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, + 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0x7f, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, - 0x49, 0x54, 0x12, 0x98, 0x01, 0x0a, 0x2b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x6c, 0x73, 0x5f, 0x74, - 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, - 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x56, 0x32, 0x48, 0x00, 0x52, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, - 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x12, 0x83, 0x01, - 0x0a, 0x29, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x20, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x34, 0x42, + 0x63, 0x6b, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, + 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, + 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, - 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, - 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x12, 0x6e, 0x0a, 0x1e, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x61, 0x6c, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, - 0x61, 0x77, 0x61, 0x6c, 0x56, 0x32, 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, - 0x57, 0x41, 0x4c, 0x12, 0x6a, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, - 0x72, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x53, - 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, - 0x6b, 0x0a, 0x20, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, - 0x63, 0x61, 0x72, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, - 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x54, 0x0a, 0x16, - 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x12, 0x5a, 0x0a, 0x14, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x75, 0x74, 0x79, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1f, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x12, 0x8f, - 0x01, 0x0a, 0x2a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x27, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, + 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x12, 0x65, 0x0a, 0x1b, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, + 0x53, 0x49, 0x54, 0x12, 0x98, 0x01, 0x0a, 0x2b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x6c, 0x73, 0x5f, + 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, + 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x56, 0x32, 0x48, 0x00, 0x52, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, + 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x12, 0x83, + 0x01, 0x0a, 0x29, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x20, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x34, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, + 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, + 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6e, 0x0a, 0x1e, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x77, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x61, 0x6c, 0x56, 0x32, 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, - 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, - 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x41, 0x64, - 0x64, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, 0x55, - 0x0a, 0x18, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, 0x18, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, - 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x76, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x2a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x52, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, - 0x52, 0x50, 0x43, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, - 0x61, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x2b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, - 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x50, - 0x43, 0x12, 0x41, 0x0a, 0x11, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x48, - 0x00, 0x52, 0x11, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, - 0x4a, 0x4f, 0x49, 0x4e, 0x12, 0x50, 0x0a, 0x16, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, - 0x72, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x2d, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x16, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, - 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x59, 0x0a, 0x19, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, - 0x44, 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, - 0x44, 0x41, 0x54, 0x41, 0x12, 0x5b, 0x0a, 0x1a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, - 0x72, 0x61, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x12, 0x7a, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, - 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, - 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x78, 0x0a, - 0x29, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, - 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x61, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x29, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, - 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x45, - 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x7a, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, - 0x62, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x33, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x23, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, - 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, - 0x43, 0x41, 0x52, 0x12, 0x52, 0x0a, 0x11, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, - 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, - 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x12, 0x7d, 0x0a, 0x2c, 0x6d, 0x65, 0x76, 0x5f, 0x72, - 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x62, 0x69, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x75, 0x62, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x42, 0x69, - 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x2c, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, - 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x49, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x42, 0x55, - 0x49, 0x4c, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x55, 0x42, 0x4d, - 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x12, 0x74, 0x0a, 0x1b, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, - 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x69, - 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x69, 0x76, - 0x65, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x24, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, - 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, - 0x41, 0x44, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x12, 0x5e, 0x0a, 0x16, - 0x65, 0x74, 0x68, 0x5f, 0x76, 0x33, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x33, 0x5f, 0x56, 0x41, 0x4c, - 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x72, 0x0a, 0x20, - 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x38, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, - 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x20, - 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, - 0x54, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x12, 0x6a, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x18, 0x39, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f, 0x73, - 0x73, 0x69, 0x70, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x12, 0x4c, 0x0a, 0x15, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x72, 0x6f, - 0x70, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x50, - 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x76, 0x65, - 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, - 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, - 0x5f, 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x47, 0x72, 0x61, 0x66, 0x74, - 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, 0x3d, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x2e, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x12, 0x67, 0x0a, 0x1e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x3e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1e, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x45, - 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, - 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, - 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, - 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1c, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, - 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x5e, 0x0a, 0x1b, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6a, 0x65, - 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, - 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1b, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4a, - 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x75, 0x0a, 0x23, 0x6c, + 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, + 0x41, 0x57, 0x41, 0x4c, 0x12, 0x6a, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, + 0x61, 0x72, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x62, + 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, + 0x12, 0x6b, 0x0a, 0x20, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x54, 0x0a, + 0x16, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x12, 0x5a, 0x0a, 0x14, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x75, 0x74, 0x79, 0x18, 0x26, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1f, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, + 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x12, + 0x8f, 0x01, 0x0a, 0x2a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x27, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x35, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, + 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, + 0x65, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x41, + 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, + 0x55, 0x0a, 0x18, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x29, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, 0x18, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, + 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x76, 0x5f, 0x72, 0x70, 0x63, 0x18, + 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x2e, 0x52, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x56, + 0x5f, 0x52, 0x50, 0x43, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x2b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, + 0x70, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, + 0x50, 0x43, 0x12, 0x41, 0x0a, 0x11, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, + 0x63, 0x65, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, + 0x48, 0x00, 0x52, 0x11, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x12, 0x50, 0x0a, 0x16, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, + 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, + 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x59, 0x0a, 0x19, 0x6c, 0x69, 0x62, 0x70, 0x32, + 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x45, 0x44, 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, + 0x63, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, + 0x41, 0x44, 0x41, 0x54, 0x41, 0x12, 0x5b, 0x0a, 0x1a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x12, 0x7a, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, + 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, + 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, + 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x78, + 0x0a, 0x29, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, + 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, + 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x32, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x29, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, + 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, + 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x7a, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, + 0x75, 0x62, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, + 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, + 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, + 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, + 0x45, 0x43, 0x41, 0x52, 0x12, 0x52, 0x0a, 0x11, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, + 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x12, 0x7d, 0x0a, 0x2c, 0x6d, 0x65, 0x76, 0x5f, + 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x62, 0x69, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x75, + 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x42, + 0x69, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x2c, 0x4d, 0x45, 0x56, 0x5f, 0x52, + 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x49, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x42, + 0x55, 0x49, 0x4c, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x55, 0x42, + 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x12, 0x74, 0x0a, 0x1b, 0x6d, 0x65, 0x76, 0x5f, 0x72, + 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x6c, + 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x50, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x69, + 0x76, 0x65, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x24, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, + 0x41, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4c, + 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x12, 0x5e, 0x0a, + 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x33, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x33, 0x5f, 0x56, 0x41, + 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x72, 0x0a, + 0x20, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, + 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x20, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, + 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x12, 0x6a, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x18, + 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f, + 0x73, 0x73, 0x69, 0x70, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x12, 0x4c, 0x0a, + 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x72, + 0x6f, 0x70, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x52, + 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x44, 0x0a, 0x12, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x76, + 0x65, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x48, 0x00, 0x52, 0x12, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, + 0x45, 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, + 0x65, 0x5f, 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x47, 0x72, 0x61, 0x66, + 0x74, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, + 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, 0x3d, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, + 0x70, 0x2e, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x12, 0x67, 0x0a, + 0x1e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x2e, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1e, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4d, + 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x69, 0x76, + 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, + 0x52, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, 0x75, + 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1c, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x55, 0x42, + 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x5e, 0x0a, 0x1b, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6a, + 0x65, 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x41, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, + 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, + 0x1b, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, + 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x75, 0x0a, 0x23, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x68, + 0x61, 0x76, 0x65, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, + 0x48, 0x61, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, + 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x48, + 0x41, 0x56, 0x45, 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x77, 0x61, 0x6e, 0x74, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x57, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, + 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, + 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x57, 0x41, 0x4e, 0x54, 0x12, 0x81, 0x01, 0x0a, 0x27, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, - 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x68, 0x61, - 0x76, 0x65, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x48, - 0x61, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, - 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x48, 0x41, - 0x56, 0x45, 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, - 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x77, 0x61, 0x6e, 0x74, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x57, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, - 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, - 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x57, 0x41, 0x4e, 0x54, 0x12, 0x81, 0x01, 0x0a, 0x27, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, - 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x6f, 0x6e, - 0x74, 0x77, 0x61, 0x6e, 0x74, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, + 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x6f, + 0x6e, 0x74, 0x77, 0x61, 0x6e, 0x74, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x49, 0x44, 0x6f, 0x6e, 0x74, 0x57, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, + 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x27, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, + 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x44, 0x4f, 0x4e, 0x54, 0x57, 0x41, 0x4e, 0x54, 0x12, 0x75, + 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x49, 0x44, 0x6f, 0x6e, 0x74, 0x57, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, - 0x65, 0x6d, 0x48, 0x00, 0x52, 0x27, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, - 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x44, 0x4f, 0x4e, 0x54, 0x57, 0x41, 0x4e, 0x54, 0x12, 0x75, 0x0a, - 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x67, - 0x72, 0x61, 0x66, 0x74, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x47, 0x72, 0x61, 0x66, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, - 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, - 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x47, - 0x52, 0x41, 0x46, 0x54, 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, - 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, 0x46, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x4d, 0x65, 0x74, 0x61, - 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, - 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x12, 0x6a, 0x0a, 0x22, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, - 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, 0x75, 0x62, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, - 0x6d, 0x48, 0x00, 0x52, 0x22, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, - 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x64, 0x0a, 0x1d, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x1d, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, - 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x52, 0x0a, - 0x15, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6e, - 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x43, - 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, - 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, - 0x53, 0x12, 0x52, 0x0a, 0x15, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x15, - 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, - 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x93, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, - 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, - 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x32, 0x48, 0x00, 0x52, - 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, - 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, - 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x12, 0x7e, 0x0a, 0x21, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, - 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x2c, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, - 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x8e, 0x01, 0x0a, 0x2a, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, - 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, - 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x44, 0x61, 0x74, - 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, + 0x6c, 0x47, 0x72, 0x61, 0x66, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, + 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, + 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, + 0x47, 0x52, 0x41, 0x46, 0x54, 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, 0x46, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, + 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x12, 0x6a, 0x0a, 0x22, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, 0x75, 0x62, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, + 0x65, 0x6d, 0x48, 0x00, 0x52, 0x22, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x53, 0x55, 0x42, 0x53, + 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x64, 0x0a, 0x1d, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, + 0x1d, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, + 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x52, + 0x0a, 0x15, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, + 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, + 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, + 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, + 0x55, 0x53, 0x12, 0x52, 0x0a, 0x15, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x4a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, + 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x93, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, + 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, + 0x62, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6e, 0x64, 0x5f, + 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, - 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, - 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x6d, 0x0a, 0x20, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x79, 0x6e, - 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, - 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, - 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x48, 0x00, 0x52, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, - 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, - 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x12, 0x4d, 0x0a, 0x15, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x79, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x79, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x12, 0x86, 0x01, 0x0a, 0x2a, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x64, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, - 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, - 0x50, 0x72, 0x6f, 0x62, 0x65, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, - 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x44, 0x59, 0x5f, 0x50, 0x52, - 0x4f, 0x42, 0x45, 0x12, 0x4f, 0x0a, 0x14, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0xc9, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x48, 0x00, 0x52, 0x14, - 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, - 0x53, 0x49, 0x5a, 0x45, 0x12, 0x71, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, - 0x73, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x65, 0x77, - 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0xca, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, - 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, - 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x45, 0x57, 0x5f, - 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x6b, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x73, 0x65, - 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x67, 0x65, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, - 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, - 0x62, 0x73, 0x48, 0x00, 0x52, 0x1e, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, - 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, - 0x4c, 0x4f, 0x42, 0x53, 0x12, 0x66, 0x0a, 0x1c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x18, 0xcc, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x67, 0x69, - 0x6e, 0x65, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x1c, - 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, - 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x60, 0x0a, 0x1a, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, - 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x18, 0xcd, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, - 0x48, 0x00, 0x52, 0x1a, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, - 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x12, 0x4f, - 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, - 0x62, 0x6c, 0x6f, 0x62, 0x18, 0xce, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x48, 0x00, - 0x52, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x12, - 0x69, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, - 0xcf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x79, - 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, 0x43, - 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, 0x75, 0x0a, 0x22, 0x65, 0x74, - 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x18, 0xd0, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, - 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, - 0x45, 0x12, 0x58, 0x0a, 0x17, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0xd1, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x48, 0x00, 0x52, 0x17, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x53, 0x12, 0x7a, 0x0a, 0x1f, 0x65, + 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, + 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x12, 0x7e, 0x0a, 0x21, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, + 0x72, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x2c, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, + 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, + 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x8e, 0x01, 0x0a, + 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, + 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x4d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, + 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x44, 0x61, + 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, + 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, + 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, + 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x6d, 0x0a, + 0x20, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x79, + 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, + 0x74, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, + 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x48, 0x00, 0x52, 0x20, 0x4c, 0x49, 0x42, 0x50, + 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, + 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x12, 0x4d, 0x0a, 0x15, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x79, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x79, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x12, 0x86, 0x01, 0x0a, 0x2a, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x64, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, + 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, + 0x79, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, + 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x44, 0x59, 0x5f, 0x50, + 0x52, 0x4f, 0x42, 0x45, 0x12, 0x4f, 0x0a, 0x14, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0xc9, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x48, 0x00, 0x52, + 0x14, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x12, 0x71, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, + 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x65, + 0x77, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0xca, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, + 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, + 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x45, 0x57, + 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x6b, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x73, + 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, + 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x62, 0x73, 0x48, 0x00, 0x52, 0x1e, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, + 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x47, 0x45, 0x54, 0x5f, + 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x12, 0x66, 0x0a, 0x1c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0xcc, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, + 0x1c, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, + 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x60, 0x0a, + 0x1a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, + 0x65, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x18, 0xcd, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, + 0x73, 0x48, 0x00, 0x52, 0x1a, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, + 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x12, + 0x4f, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x18, 0xce, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x48, + 0x00, 0x52, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, + 0x12, 0x69, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, + 0x18, 0xcf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, + 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, + 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, 0x75, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0xd2, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, - 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x43, 0x43, 0x45, - 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x2a, - 0x6c, 0x0a, 0x0c, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, - 0x1d, 0x0a, 0x19, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, - 0x0a, 0x15, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, - 0x53, 0x4e, 0x4f, 0x4f, 0x50, 0x45, 0x52, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x4e, 0x47, - 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x32, 0x58, 0x0a, - 0x0d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x47, - 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x19, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, - 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2f, 0x78, 0x61, 0x74, 0x75, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x63, 0x6b, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x18, 0xd0, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, + 0x54, 0x45, 0x12, 0x58, 0x0a, 0x17, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0xd1, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x48, 0x00, 0x52, 0x17, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, + 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x53, 0x12, 0x7a, 0x0a, 0x1f, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0xd2, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x43, 0x43, + 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x2a, 0x6c, 0x0a, 0x0c, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x19, 0x0a, 0x15, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, + 0x5f, 0x53, 0x4e, 0x4f, 0x4f, 0x50, 0x45, 0x52, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x4e, + 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x58, 0x45, 0x43, + 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x32, 0x58, + 0x0a, 0x0d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, + 0x47, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, + 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -16918,198 +16942,199 @@ var file_pkg_proto_xatu_event_ingester_proto_depIdxs = []int32{ 143, // 344: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.position_in_block:type_name -> google.protobuf.UInt64Value 18, // 345: xatu.ClientMeta.AdditionalEthV2BeaconBlockWithdrawalData.block:type_name -> xatu.BlockIdentifier 18, // 346: xatu.ClientMeta.AdditionalEthV2BeaconBlockAccessListData.block:type_name -> xatu.BlockIdentifier - 143, // 347: xatu.ClientMeta.AttestationDataSnapshot.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value - 143, // 348: xatu.ClientMeta.AttestationDataSnapshot.request_duration_ms:type_name -> google.protobuf.UInt64Value - 144, // 349: xatu.ClientMeta.AttestationDataSnapshot.timestamp:type_name -> google.protobuf.Timestamp - 33, // 350: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 35, // 351: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 5, // 352: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.epoch:type_name -> xatu.EpochV2 - 7, // 353: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.slot:type_name -> xatu.SlotV2 - 74, // 354: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.Snapshot:type_name -> xatu.ClientMeta.AttestationDataSnapshot - 5, // 355: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 356: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.slot:type_name -> xatu.SlotV2 - 10, // 357: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.propagation:type_name -> xatu.PropagationV2 - 5, // 358: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 359: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.slot:type_name -> xatu.SlotV2 - 10, // 360: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.propagation:type_name -> xatu.PropagationV2 - 5, // 361: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 362: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.slot:type_name -> xatu.SlotV2 - 143, // 363: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_size:type_name -> google.protobuf.UInt64Value - 143, // 364: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_empty_size:type_name -> google.protobuf.UInt64Value - 33, // 365: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 35, // 366: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 7, // 367: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.slot:type_name -> xatu.SlotV2 - 5, // 368: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.epoch:type_name -> xatu.EpochV2 - 10, // 369: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.propagation:type_name -> xatu.PropagationV2 - 12, // 370: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 - 221, // 371: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.libp2p.Peer - 151, // 372: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.subnet:type_name -> google.protobuf.UInt32Value - 222, // 373: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.validated:type_name -> google.protobuf.BoolValue - 5, // 374: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.epoch:type_name -> xatu.EpochV2 - 7, // 375: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.slot:type_name -> xatu.SlotV2 - 18, // 376: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.block:type_name -> xatu.BlockIdentifier - 143, // 377: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.position_in_block:type_name -> google.protobuf.UInt64Value - 5, // 378: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.epoch:type_name -> xatu.EpochV2 - 7, // 379: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.slot:type_name -> xatu.SlotV2 - 33, // 380: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 35, // 381: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 223, // 382: xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 383: xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 384: xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 385: xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 386: xatu.ClientMeta.AdditionalLibP2PTraceDropRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 387: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIHaveData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 388: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIWantData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 389: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIDontWantData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 390: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlGraftData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 391: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlPruneData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 392: xatu.ClientMeta.AdditionalLibP2PTraceJoinData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 393: xatu.ClientMeta.AdditionalLibP2PTraceLeaveData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 394: xatu.ClientMeta.AdditionalLibP2PTraceGraftData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 395: xatu.ClientMeta.AdditionalLibP2PTracePruneData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 396: xatu.ClientMeta.AdditionalLibP2PTraceDuplicateMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 397: xatu.ClientMeta.AdditionalLibP2PTraceDeliverMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 398: xatu.ClientMeta.AdditionalLibP2PTracePublishMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 399: xatu.ClientMeta.AdditionalLibP2PTraceRejectMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 400: xatu.ClientMeta.AdditionalLibP2PTraceConnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 401: xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 402: xatu.ClientMeta.AdditionalLibP2PTraceSyntheticHeartbeatData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 403: xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 404: xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 405: xatu.ClientMeta.AdditionalLibP2PTraceIdentifyData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 406: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 5, // 407: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.epoch:type_name -> xatu.EpochV2 - 7, // 408: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.slot:type_name -> xatu.SlotV2 - 5, // 409: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 410: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.wallclock_slot:type_name -> xatu.SlotV2 - 223, // 411: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaSubscriptionData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 412: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 5, // 413: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.epoch:type_name -> xatu.EpochV2 - 7, // 414: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.slot:type_name -> xatu.SlotV2 - 5, // 415: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 416: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_slot:type_name -> xatu.SlotV2 - 10, // 417: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.propagation:type_name -> xatu.PropagationV2 - 223, // 418: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 224, // 419: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.topic:type_name -> google.protobuf.StringValue - 151, // 420: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_size:type_name -> google.protobuf.UInt32Value - 224, // 421: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_id:type_name -> google.protobuf.StringValue - 5, // 422: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData.epoch:type_name -> xatu.EpochV2 - 5, // 423: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData.epoch:type_name -> xatu.EpochV2 - 110, // 424: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.source:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData - 111, // 425: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.target:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData - 7, // 426: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.slot:type_name -> xatu.SlotV2 - 5, // 427: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.epoch:type_name -> xatu.EpochV2 - 10, // 428: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.propagation:type_name -> xatu.PropagationV2 - 12, // 429: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 - 5, // 430: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 431: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_slot:type_name -> xatu.SlotV2 - 223, // 432: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 224, // 433: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.topic:type_name -> google.protobuf.StringValue - 151, // 434: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_size:type_name -> google.protobuf.UInt32Value - 224, // 435: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_id:type_name -> google.protobuf.StringValue - 5, // 436: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.epoch:type_name -> xatu.EpochV2 - 7, // 437: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.slot:type_name -> xatu.SlotV2 - 5, // 438: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 439: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.wallclock_slot:type_name -> xatu.SlotV2 - 10, // 440: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.propagation:type_name -> xatu.PropagationV2 - 143, // 441: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.aggregator_index:type_name -> google.protobuf.UInt64Value - 223, // 442: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 224, // 443: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.topic:type_name -> google.protobuf.StringValue - 151, // 444: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.message_size:type_name -> google.protobuf.UInt32Value - 224, // 445: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.message_id:type_name -> google.protobuf.StringValue - 5, // 446: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 447: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.slot:type_name -> xatu.SlotV2 - 5, // 448: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 449: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_slot:type_name -> xatu.SlotV2 - 10, // 450: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.propagation:type_name -> xatu.PropagationV2 - 223, // 451: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 224, // 452: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.topic:type_name -> google.protobuf.StringValue - 151, // 453: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_size:type_name -> google.protobuf.UInt32Value - 224, // 454: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_id:type_name -> google.protobuf.StringValue - 5, // 455: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 456: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.slot:type_name -> xatu.SlotV2 - 5, // 457: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 458: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.wallclock_slot:type_name -> xatu.SlotV2 - 10, // 459: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.propagation:type_name -> xatu.PropagationV2 - 223, // 460: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 224, // 461: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.topic:type_name -> google.protobuf.StringValue - 151, // 462: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.message_size:type_name -> google.protobuf.UInt32Value - 224, // 463: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.message_id:type_name -> google.protobuf.StringValue - 5, // 464: xatu.ClientMeta.AdditionalEthV1ValidatorsData.epoch:type_name -> xatu.EpochV2 - 225, // 465: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.relay:type_name -> xatu.mevrelay.Relay - 7, // 466: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.slot:type_name -> xatu.SlotV2 - 7, // 467: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.wallclock_slot:type_name -> xatu.SlotV2 - 5, // 468: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.epoch:type_name -> xatu.EpochV2 - 5, // 469: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.wallclock_epoch:type_name -> xatu.EpochV2 - 143, // 470: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.requested_at_slot_time:type_name -> google.protobuf.UInt64Value - 143, // 471: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.response_at_slot_time:type_name -> google.protobuf.UInt64Value - 225, // 472: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.relay:type_name -> xatu.mevrelay.Relay - 7, // 473: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.slot:type_name -> xatu.SlotV2 - 7, // 474: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.wallclock_slot:type_name -> xatu.SlotV2 - 5, // 475: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.epoch:type_name -> xatu.EpochV2 - 5, // 476: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.wallclock_epoch:type_name -> xatu.EpochV2 - 143, // 477: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.requested_at_slot_time:type_name -> google.protobuf.UInt64Value - 143, // 478: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.response_at_slot_time:type_name -> google.protobuf.UInt64Value - 5, // 479: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.epoch:type_name -> xatu.EpochV2 - 7, // 480: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.slot:type_name -> xatu.SlotV2 - 143, // 481: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_count:type_name -> google.protobuf.UInt64Value - 143, // 482: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_total_bytes:type_name -> google.protobuf.UInt64Value - 143, // 483: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_total_bytes_compressed:type_name -> google.protobuf.UInt64Value - 143, // 484: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.total_bytes:type_name -> google.protobuf.UInt64Value - 143, // 485: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.total_bytes_compressed:type_name -> google.protobuf.UInt64Value - 143, // 486: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.request_duration_ms:type_name -> google.protobuf.UInt64Value - 144, // 487: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.requested_at:type_name -> google.protobuf.Timestamp - 225, // 488: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.relay:type_name -> xatu.mevrelay.Relay - 7, // 489: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.slot:type_name -> xatu.SlotV2 - 7, // 490: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.wallclock_slot:type_name -> xatu.SlotV2 - 5, // 491: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.epoch:type_name -> xatu.EpochV2 - 5, // 492: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.wallclock_epoch:type_name -> xatu.EpochV2 - 143, // 493: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.validator_index:type_name -> google.protobuf.UInt64Value - 5, // 494: xatu.ClientMeta.AdditionalNodeRecordConsensusData.finalized_epoch:type_name -> xatu.EpochV2 - 7, // 495: xatu.ClientMeta.AdditionalNodeRecordConsensusData.head_slot:type_name -> xatu.SlotV2 - 5, // 496: xatu.ClientMeta.AdditionalNodeRecordConsensusData.head_epoch:type_name -> xatu.EpochV2 - 5, // 497: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData.epoch:type_name -> xatu.EpochV2 - 7, // 498: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData.slot:type_name -> xatu.SlotV2 - 5, // 499: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData.epoch:type_name -> xatu.EpochV2 - 7, // 500: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData.slot:type_name -> xatu.SlotV2 - 5, // 501: xatu.ClientMeta.AdditionalEthV1BeaconBlobData.epoch:type_name -> xatu.EpochV2 - 7, // 502: xatu.ClientMeta.AdditionalEthV1BeaconBlobData.slot:type_name -> xatu.SlotV2 - 8, // 503: xatu.ClientMeta.Ethereum.Execution.fork_id:type_name -> xatu.ForkID - 144, // 504: xatu.ServerMeta.Event.received_date_time:type_name -> google.protobuf.Timestamp - 129, // 505: xatu.ServerMeta.Client.geo:type_name -> xatu.ServerMeta.Geo - 129, // 506: xatu.ServerMeta.Peer.geo:type_name -> xatu.ServerMeta.Geo - 131, // 507: xatu.ServerMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.ServerMeta.Peer - 131, // 508: xatu.ServerMeta.AdditionalLibp2PTraceConnectedData.peer:type_name -> xatu.ServerMeta.Peer - 131, // 509: xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData.peer:type_name -> xatu.ServerMeta.Peer - 131, // 510: xatu.ServerMeta.AdditionalLibP2PTraceSyntheticHeartbeatData.peer:type_name -> xatu.ServerMeta.Peer - 131, // 511: xatu.ServerMeta.AdditionalLibp2PTraceIdentifyData.peer:type_name -> xatu.ServerMeta.Peer - 129, // 512: xatu.ServerMeta.AdditionalNodeRecordConsensusData.geo:type_name -> xatu.ServerMeta.Geo - 129, // 513: xatu.ServerMeta.AdditionalNodeRecordExecutionData.geo:type_name -> xatu.ServerMeta.Geo - 143, // 514: xatu.ExecutionBlockMetrics.StateReads.accounts:type_name -> google.protobuf.UInt64Value - 143, // 515: xatu.ExecutionBlockMetrics.StateReads.storage_slots:type_name -> google.protobuf.UInt64Value - 143, // 516: xatu.ExecutionBlockMetrics.StateReads.code:type_name -> google.protobuf.UInt64Value - 143, // 517: xatu.ExecutionBlockMetrics.StateReads.code_bytes:type_name -> google.protobuf.UInt64Value - 143, // 518: xatu.ExecutionBlockMetrics.StateWrites.accounts:type_name -> google.protobuf.UInt64Value - 143, // 519: xatu.ExecutionBlockMetrics.StateWrites.accounts_deleted:type_name -> google.protobuf.UInt64Value - 143, // 520: xatu.ExecutionBlockMetrics.StateWrites.storage_slots:type_name -> google.protobuf.UInt64Value - 143, // 521: xatu.ExecutionBlockMetrics.StateWrites.storage_slots_deleted:type_name -> google.protobuf.UInt64Value - 143, // 522: xatu.ExecutionBlockMetrics.StateWrites.code:type_name -> google.protobuf.UInt64Value - 143, // 523: xatu.ExecutionBlockMetrics.StateWrites.code_bytes:type_name -> google.protobuf.UInt64Value - 226, // 524: xatu.ExecutionBlockMetrics.CacheEntry.hits:type_name -> google.protobuf.Int64Value - 226, // 525: xatu.ExecutionBlockMetrics.CacheEntry.misses:type_name -> google.protobuf.Int64Value - 153, // 526: xatu.ExecutionBlockMetrics.CacheEntry.hit_rate:type_name -> google.protobuf.DoubleValue - 226, // 527: xatu.ExecutionBlockMetrics.CodeCacheEntry.hits:type_name -> google.protobuf.Int64Value - 226, // 528: xatu.ExecutionBlockMetrics.CodeCacheEntry.misses:type_name -> google.protobuf.Int64Value - 153, // 529: xatu.ExecutionBlockMetrics.CodeCacheEntry.hit_rate:type_name -> google.protobuf.DoubleValue - 226, // 530: xatu.ExecutionBlockMetrics.CodeCacheEntry.hit_bytes:type_name -> google.protobuf.Int64Value - 226, // 531: xatu.ExecutionBlockMetrics.CodeCacheEntry.miss_bytes:type_name -> google.protobuf.Int64Value - 2, // 532: xatu.EventIngester.CreateEvents:input_type -> xatu.CreateEventsRequest - 3, // 533: xatu.EventIngester.CreateEvents:output_type -> xatu.CreateEventsResponse - 533, // [533:534] is the sub-list for method output_type - 532, // [532:533] is the sub-list for method input_type - 532, // [532:532] is the sub-list for extension type_name - 532, // [532:532] is the sub-list for extension extendee - 0, // [0:532] is the sub-list for field type_name + 143, // 347: xatu.ClientMeta.AdditionalEthV2BeaconBlockAccessListData.block_number:type_name -> google.protobuf.UInt64Value + 143, // 348: xatu.ClientMeta.AttestationDataSnapshot.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value + 143, // 349: xatu.ClientMeta.AttestationDataSnapshot.request_duration_ms:type_name -> google.protobuf.UInt64Value + 144, // 350: xatu.ClientMeta.AttestationDataSnapshot.timestamp:type_name -> google.protobuf.Timestamp + 33, // 351: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 35, // 352: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 5, // 353: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.epoch:type_name -> xatu.EpochV2 + 7, // 354: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.slot:type_name -> xatu.SlotV2 + 74, // 355: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.Snapshot:type_name -> xatu.ClientMeta.AttestationDataSnapshot + 5, // 356: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 357: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.slot:type_name -> xatu.SlotV2 + 10, // 358: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.propagation:type_name -> xatu.PropagationV2 + 5, // 359: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 360: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.slot:type_name -> xatu.SlotV2 + 10, // 361: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.propagation:type_name -> xatu.PropagationV2 + 5, // 362: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 363: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.slot:type_name -> xatu.SlotV2 + 143, // 364: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_size:type_name -> google.protobuf.UInt64Value + 143, // 365: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_empty_size:type_name -> google.protobuf.UInt64Value + 33, // 366: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 35, // 367: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 7, // 368: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.slot:type_name -> xatu.SlotV2 + 5, // 369: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.epoch:type_name -> xatu.EpochV2 + 10, // 370: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.propagation:type_name -> xatu.PropagationV2 + 12, // 371: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 + 221, // 372: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.libp2p.Peer + 151, // 373: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.subnet:type_name -> google.protobuf.UInt32Value + 222, // 374: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.validated:type_name -> google.protobuf.BoolValue + 5, // 375: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.epoch:type_name -> xatu.EpochV2 + 7, // 376: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.slot:type_name -> xatu.SlotV2 + 18, // 377: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.block:type_name -> xatu.BlockIdentifier + 143, // 378: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.position_in_block:type_name -> google.protobuf.UInt64Value + 5, // 379: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.epoch:type_name -> xatu.EpochV2 + 7, // 380: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.slot:type_name -> xatu.SlotV2 + 33, // 381: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 35, // 382: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 223, // 383: xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 384: xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 385: xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 386: xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 387: xatu.ClientMeta.AdditionalLibP2PTraceDropRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 388: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIHaveData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 389: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIWantData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 390: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIDontWantData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 391: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlGraftData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 392: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlPruneData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 393: xatu.ClientMeta.AdditionalLibP2PTraceJoinData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 394: xatu.ClientMeta.AdditionalLibP2PTraceLeaveData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 395: xatu.ClientMeta.AdditionalLibP2PTraceGraftData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 396: xatu.ClientMeta.AdditionalLibP2PTracePruneData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 397: xatu.ClientMeta.AdditionalLibP2PTraceDuplicateMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 398: xatu.ClientMeta.AdditionalLibP2PTraceDeliverMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 399: xatu.ClientMeta.AdditionalLibP2PTracePublishMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 400: xatu.ClientMeta.AdditionalLibP2PTraceRejectMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 401: xatu.ClientMeta.AdditionalLibP2PTraceConnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 402: xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 403: xatu.ClientMeta.AdditionalLibP2PTraceSyntheticHeartbeatData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 404: xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 405: xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 406: xatu.ClientMeta.AdditionalLibP2PTraceIdentifyData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 407: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 5, // 408: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.epoch:type_name -> xatu.EpochV2 + 7, // 409: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.slot:type_name -> xatu.SlotV2 + 5, // 410: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 411: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.wallclock_slot:type_name -> xatu.SlotV2 + 223, // 412: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaSubscriptionData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 223, // 413: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 5, // 414: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.epoch:type_name -> xatu.EpochV2 + 7, // 415: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.slot:type_name -> xatu.SlotV2 + 5, // 416: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 417: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 418: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.propagation:type_name -> xatu.PropagationV2 + 223, // 419: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 224, // 420: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.topic:type_name -> google.protobuf.StringValue + 151, // 421: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_size:type_name -> google.protobuf.UInt32Value + 224, // 422: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_id:type_name -> google.protobuf.StringValue + 5, // 423: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData.epoch:type_name -> xatu.EpochV2 + 5, // 424: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData.epoch:type_name -> xatu.EpochV2 + 110, // 425: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.source:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData + 111, // 426: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.target:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData + 7, // 427: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.slot:type_name -> xatu.SlotV2 + 5, // 428: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.epoch:type_name -> xatu.EpochV2 + 10, // 429: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.propagation:type_name -> xatu.PropagationV2 + 12, // 430: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 + 5, // 431: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 432: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_slot:type_name -> xatu.SlotV2 + 223, // 433: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 224, // 434: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.topic:type_name -> google.protobuf.StringValue + 151, // 435: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_size:type_name -> google.protobuf.UInt32Value + 224, // 436: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_id:type_name -> google.protobuf.StringValue + 5, // 437: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.epoch:type_name -> xatu.EpochV2 + 7, // 438: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.slot:type_name -> xatu.SlotV2 + 5, // 439: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 440: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 441: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.propagation:type_name -> xatu.PropagationV2 + 143, // 442: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.aggregator_index:type_name -> google.protobuf.UInt64Value + 223, // 443: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 224, // 444: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.topic:type_name -> google.protobuf.StringValue + 151, // 445: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.message_size:type_name -> google.protobuf.UInt32Value + 224, // 446: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.message_id:type_name -> google.protobuf.StringValue + 5, // 447: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 448: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.slot:type_name -> xatu.SlotV2 + 5, // 449: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 450: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 451: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.propagation:type_name -> xatu.PropagationV2 + 223, // 452: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 224, // 453: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.topic:type_name -> google.protobuf.StringValue + 151, // 454: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_size:type_name -> google.protobuf.UInt32Value + 224, // 455: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_id:type_name -> google.protobuf.StringValue + 5, // 456: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 457: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.slot:type_name -> xatu.SlotV2 + 5, // 458: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 459: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 460: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.propagation:type_name -> xatu.PropagationV2 + 223, // 461: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 224, // 462: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.topic:type_name -> google.protobuf.StringValue + 151, // 463: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.message_size:type_name -> google.protobuf.UInt32Value + 224, // 464: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.message_id:type_name -> google.protobuf.StringValue + 5, // 465: xatu.ClientMeta.AdditionalEthV1ValidatorsData.epoch:type_name -> xatu.EpochV2 + 225, // 466: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.relay:type_name -> xatu.mevrelay.Relay + 7, // 467: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.slot:type_name -> xatu.SlotV2 + 7, // 468: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.wallclock_slot:type_name -> xatu.SlotV2 + 5, // 469: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.epoch:type_name -> xatu.EpochV2 + 5, // 470: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.wallclock_epoch:type_name -> xatu.EpochV2 + 143, // 471: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.requested_at_slot_time:type_name -> google.protobuf.UInt64Value + 143, // 472: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.response_at_slot_time:type_name -> google.protobuf.UInt64Value + 225, // 473: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.relay:type_name -> xatu.mevrelay.Relay + 7, // 474: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.slot:type_name -> xatu.SlotV2 + 7, // 475: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.wallclock_slot:type_name -> xatu.SlotV2 + 5, // 476: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.epoch:type_name -> xatu.EpochV2 + 5, // 477: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.wallclock_epoch:type_name -> xatu.EpochV2 + 143, // 478: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.requested_at_slot_time:type_name -> google.protobuf.UInt64Value + 143, // 479: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.response_at_slot_time:type_name -> google.protobuf.UInt64Value + 5, // 480: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.epoch:type_name -> xatu.EpochV2 + 7, // 481: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.slot:type_name -> xatu.SlotV2 + 143, // 482: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_count:type_name -> google.protobuf.UInt64Value + 143, // 483: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_total_bytes:type_name -> google.protobuf.UInt64Value + 143, // 484: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_total_bytes_compressed:type_name -> google.protobuf.UInt64Value + 143, // 485: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.total_bytes:type_name -> google.protobuf.UInt64Value + 143, // 486: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.total_bytes_compressed:type_name -> google.protobuf.UInt64Value + 143, // 487: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.request_duration_ms:type_name -> google.protobuf.UInt64Value + 144, // 488: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.requested_at:type_name -> google.protobuf.Timestamp + 225, // 489: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.relay:type_name -> xatu.mevrelay.Relay + 7, // 490: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.slot:type_name -> xatu.SlotV2 + 7, // 491: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.wallclock_slot:type_name -> xatu.SlotV2 + 5, // 492: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.epoch:type_name -> xatu.EpochV2 + 5, // 493: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.wallclock_epoch:type_name -> xatu.EpochV2 + 143, // 494: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.validator_index:type_name -> google.protobuf.UInt64Value + 5, // 495: xatu.ClientMeta.AdditionalNodeRecordConsensusData.finalized_epoch:type_name -> xatu.EpochV2 + 7, // 496: xatu.ClientMeta.AdditionalNodeRecordConsensusData.head_slot:type_name -> xatu.SlotV2 + 5, // 497: xatu.ClientMeta.AdditionalNodeRecordConsensusData.head_epoch:type_name -> xatu.EpochV2 + 5, // 498: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData.epoch:type_name -> xatu.EpochV2 + 7, // 499: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData.slot:type_name -> xatu.SlotV2 + 5, // 500: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData.epoch:type_name -> xatu.EpochV2 + 7, // 501: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData.slot:type_name -> xatu.SlotV2 + 5, // 502: xatu.ClientMeta.AdditionalEthV1BeaconBlobData.epoch:type_name -> xatu.EpochV2 + 7, // 503: xatu.ClientMeta.AdditionalEthV1BeaconBlobData.slot:type_name -> xatu.SlotV2 + 8, // 504: xatu.ClientMeta.Ethereum.Execution.fork_id:type_name -> xatu.ForkID + 144, // 505: xatu.ServerMeta.Event.received_date_time:type_name -> google.protobuf.Timestamp + 129, // 506: xatu.ServerMeta.Client.geo:type_name -> xatu.ServerMeta.Geo + 129, // 507: xatu.ServerMeta.Peer.geo:type_name -> xatu.ServerMeta.Geo + 131, // 508: xatu.ServerMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.ServerMeta.Peer + 131, // 509: xatu.ServerMeta.AdditionalLibp2PTraceConnectedData.peer:type_name -> xatu.ServerMeta.Peer + 131, // 510: xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData.peer:type_name -> xatu.ServerMeta.Peer + 131, // 511: xatu.ServerMeta.AdditionalLibP2PTraceSyntheticHeartbeatData.peer:type_name -> xatu.ServerMeta.Peer + 131, // 512: xatu.ServerMeta.AdditionalLibp2PTraceIdentifyData.peer:type_name -> xatu.ServerMeta.Peer + 129, // 513: xatu.ServerMeta.AdditionalNodeRecordConsensusData.geo:type_name -> xatu.ServerMeta.Geo + 129, // 514: xatu.ServerMeta.AdditionalNodeRecordExecutionData.geo:type_name -> xatu.ServerMeta.Geo + 143, // 515: xatu.ExecutionBlockMetrics.StateReads.accounts:type_name -> google.protobuf.UInt64Value + 143, // 516: xatu.ExecutionBlockMetrics.StateReads.storage_slots:type_name -> google.protobuf.UInt64Value + 143, // 517: xatu.ExecutionBlockMetrics.StateReads.code:type_name -> google.protobuf.UInt64Value + 143, // 518: xatu.ExecutionBlockMetrics.StateReads.code_bytes:type_name -> google.protobuf.UInt64Value + 143, // 519: xatu.ExecutionBlockMetrics.StateWrites.accounts:type_name -> google.protobuf.UInt64Value + 143, // 520: xatu.ExecutionBlockMetrics.StateWrites.accounts_deleted:type_name -> google.protobuf.UInt64Value + 143, // 521: xatu.ExecutionBlockMetrics.StateWrites.storage_slots:type_name -> google.protobuf.UInt64Value + 143, // 522: xatu.ExecutionBlockMetrics.StateWrites.storage_slots_deleted:type_name -> google.protobuf.UInt64Value + 143, // 523: xatu.ExecutionBlockMetrics.StateWrites.code:type_name -> google.protobuf.UInt64Value + 143, // 524: xatu.ExecutionBlockMetrics.StateWrites.code_bytes:type_name -> google.protobuf.UInt64Value + 226, // 525: xatu.ExecutionBlockMetrics.CacheEntry.hits:type_name -> google.protobuf.Int64Value + 226, // 526: xatu.ExecutionBlockMetrics.CacheEntry.misses:type_name -> google.protobuf.Int64Value + 153, // 527: xatu.ExecutionBlockMetrics.CacheEntry.hit_rate:type_name -> google.protobuf.DoubleValue + 226, // 528: xatu.ExecutionBlockMetrics.CodeCacheEntry.hits:type_name -> google.protobuf.Int64Value + 226, // 529: xatu.ExecutionBlockMetrics.CodeCacheEntry.misses:type_name -> google.protobuf.Int64Value + 153, // 530: xatu.ExecutionBlockMetrics.CodeCacheEntry.hit_rate:type_name -> google.protobuf.DoubleValue + 226, // 531: xatu.ExecutionBlockMetrics.CodeCacheEntry.hit_bytes:type_name -> google.protobuf.Int64Value + 226, // 532: xatu.ExecutionBlockMetrics.CodeCacheEntry.miss_bytes:type_name -> google.protobuf.Int64Value + 2, // 533: xatu.EventIngester.CreateEvents:input_type -> xatu.CreateEventsRequest + 3, // 534: xatu.EventIngester.CreateEvents:output_type -> xatu.CreateEventsResponse + 534, // [534:535] is the sub-list for method output_type + 533, // [533:534] is the sub-list for method input_type + 533, // [533:533] is the sub-list for extension type_name + 533, // [533:533] is the sub-list for extension extendee + 0, // [0:533] is the sub-list for field type_name } func init() { file_pkg_proto_xatu_event_ingester_proto_init() } diff --git a/pkg/proto/xatu/event_ingester.proto b/pkg/proto/xatu/event_ingester.proto index 622d78c18..36c6e4967 100644 --- a/pkg/proto/xatu/event_ingester.proto +++ b/pkg/proto/xatu/event_ingester.proto @@ -923,6 +923,10 @@ message ClientMeta { // Block contains the information about the block that we are deriving the // access list from. BlockIdentifier block = 1; + // Execution block number from the execution payload. + google.protobuf.UInt64Value block_number = 2; + // Execution block hash from the execution payload (hex encoded). + string block_hash = 3; } // AdditionalBlockprintBlockClassificationData was removed — blockprint is deprecated. diff --git a/pkg/server/persistence/cannon/location.go b/pkg/server/persistence/cannon/location.go index c88a2d638..18fe60dd6 100644 --- a/pkg/server/persistence/cannon/location.go +++ b/pkg/server/persistence/cannon/location.go @@ -202,6 +202,17 @@ func (l *Location) Marshal(msg *xatu.CannonLocation) error { return fmt.Errorf("%w: %s", ErrFailedToMarshal, err) } + l.Value = string(b) + case xatu.CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST: + l.Type = "BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST" + + data := msg.GetEthV2BeaconBlockAccessList() + + b, err := protojson.Marshal(data) + if err != nil { + return fmt.Errorf("%w: %s", ErrFailedToMarshal, err) + } + l.Value = string(b) default: return fmt.Errorf("unknown type: %s", msg.Type) @@ -414,6 +425,19 @@ func (l *Location) Unmarshal() (*xatu.CannonLocation, error) { msg.Data = &xatu.CannonLocation_EthV2BeaconBlockSyncAggregate{ EthV2BeaconBlockSyncAggregate: data, } + case "BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST": + msg.Type = xatu.CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST + + data := &xatu.CannonLocationEthV2BeaconBlockAccessList{} + + err := protojson.Unmarshal([]byte(l.Value), data) + if err != nil { + return nil, fmt.Errorf("%w: %s", ErrFailedToUnmarshal, err) + } + + msg.Data = &xatu.CannonLocation_EthV2BeaconBlockAccessList{ + EthV2BeaconBlockAccessList: data, + } default: return nil, fmt.Errorf("unknown type: %s", l.Type) } From f63087f7977de6ef35fe5f4ba057b1718a5f0e59 Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Tue, 24 Mar 2026 12:29:05 +1000 Subject: [PATCH 10/23] fix(vector-kafka-clickhouse.yaml): update block_number and block_hash properties to use camelCase style(vector-kafka-clickhouse.yaml): standardize field naming conventions to match expected API format --- deploy/local/docker-compose/vector-kafka-clickhouse.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/local/docker-compose/vector-kafka-clickhouse.yaml b/deploy/local/docker-compose/vector-kafka-clickhouse.yaml index d8a59e3a7..22031ec17 100644 --- a/deploy/local/docker-compose/vector-kafka-clickhouse.yaml +++ b/deploy/local/docker-compose/vector-kafka-clickhouse.yaml @@ -1585,8 +1585,8 @@ transforms: log(., level: "error", rate_limit_secs: 60) } .block_root = .meta.client.additional_data.block.root - .block_number = .meta.client.additional_data.block_number - .block_hash = .meta.client.additional_data.block_hash + .block_number = .meta.client.additional_data.blockNumber + .block_hash = .meta.client.additional_data.blockHash .address = .data.address .change_type = .data.change_type .block_access_index = .data.block_access_index From fdd348adf3dfc66b4b32480e404360724915c975 Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Tue, 24 Mar 2026 12:34:13 +1000 Subject: [PATCH 11/23] chore(buf.yaml): update linting rules to exclude specific checks for better customization --- buf.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/buf.yaml b/buf.yaml index 812919de9..de8d39588 100644 --- a/buf.yaml +++ b/buf.yaml @@ -5,6 +5,14 @@ modules: lint: use: - STANDARD + except: + - PACKAGE_DIRECTORY_MATCH + - FIELD_LOWER_SNAKE_CASE + - ENUM_VALUE_PREFIX + - ENUM_ZERO_VALUE_SUFFIX + - PACKAGE_VERSION_SUFFIX + - SERVICE_SUFFIX + - ONEOF_LOWER_SNAKE_CASE breaking: use: - PACKAGE From 4ff67bf0a26eea4b967fd3aa718193fcfe3ae945 Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Wed, 25 Mar 2026 13:36:11 +1000 Subject: [PATCH 12/23] feat(gloas): add BAL storage reads and bump deps to bal-devnet-3 --- go.mod | 8 +- go.sum | 16 ++-- .../beacon/eth/v2/block_access_list.go | 15 +++ pkg/proto/eth/v1/block_access_list.pb.go | 92 +++++++++++-------- pkg/proto/eth/v1/block_access_list.proto | 4 +- pkg/proto/eth/v1/conversion.go | 9 ++ pkg/proto/eth/v1/conversion_test.go | 13 +++ 7 files changed, 105 insertions(+), 52 deletions(-) diff --git a/go.mod b/go.mod index 572822b61..eec848ad6 100644 --- a/go.mod +++ b/go.mod @@ -20,9 +20,9 @@ require ( github.com/cenkalti/backoff/v5 v5.0.3 github.com/chuckpreslar/emission v0.0.0-20170206194824-a7ddd980baf9 github.com/creasty/defaults v1.8.0 - github.com/ethereum/go-ethereum v1.17.2-0.20260319135215-e5d453c086c7 - github.com/ethpandaops/beacon v0.67.1-0.20260324015045-f64d291dca36 - github.com/ethpandaops/ethcore v0.0.0-20260324015639-f83abb88486d + github.com/ethereum/go-ethereum v1.17.2-0.20260324190457-8f361e342cb9 + github.com/ethpandaops/beacon v0.67.1-0.20260325033338-72e601905364 + github.com/ethpandaops/ethcore v0.0.0-20260325033335-3648959229f1 github.com/ethpandaops/ethwallclock v0.4.0 github.com/ferranbt/fastssz v1.0.0 github.com/go-co-op/gocron/v2 v2.16.6 @@ -98,7 +98,7 @@ require ( github.com/containerd/platforms v1.0.0-rc.1 // indirect github.com/cpuguy83/dockercfg v0.3.2 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect - github.com/crate-crypto/go-eth-kzg v1.4.0 // indirect + github.com/crate-crypto/go-eth-kzg v1.5.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect github.com/deckarep/golang-set/v2 v2.8.0 // indirect diff --git a/go.sum b/go.sum index 95e3e8c4b..64162b184 100644 --- a/go.sum +++ b/go.sum @@ -114,8 +114,8 @@ github.com/cpuguy83/dockercfg v0.3.2/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHf github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo= github.com/cpuguy83/go-md2man/v2 v2.0.7/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= -github.com/crate-crypto/go-eth-kzg v1.4.0 h1:WzDGjHk4gFg6YzV0rJOAsTK4z3Qkz5jd4RE3DAvPFkg= -github.com/crate-crypto/go-eth-kzg v1.4.0/go.mod h1:J9/u5sWfznSObptgfa92Jq8rTswn6ahQWEuiLHOjCUI= +github.com/crate-crypto/go-eth-kzg v1.5.0 h1:FYRiJMJG2iv+2Dy3fi14SVGjcPteZ5HAAUe4YWlJygc= +github.com/crate-crypto/go-eth-kzg v1.5.0/go.mod h1:J9/u5sWfznSObptgfa92Jq8rTswn6ahQWEuiLHOjCUI= github.com/crate-crypto/go-kzg-4844 v1.1.0 h1:EN/u9k2TF6OWSHrCCDBBU6GLNMq88OspHHlMnHfoyU4= github.com/crate-crypto/go-kzg-4844 v1.1.0/go.mod h1:JolLjpSff1tCCJKaJx4psrlEdlXuJEC996PL3tTAFks= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -173,12 +173,12 @@ github.com/ethereum/c-kzg-4844/v2 v2.1.6 h1:xQymkKCT5E2Jiaoqf3v4wsNgjZLY0lRSkZn2 github.com/ethereum/c-kzg-4844/v2 v2.1.6/go.mod h1:8HMkUZ5JRv4hpw/XUrYWSQNAUzhHMg2UDb/U+5m+XNw= github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab h1:rvv6MJhy07IMfEKuARQ9TKojGqLVNxQajaXEp/BoqSk= github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab/go.mod h1:IuLm4IsPipXKF7CW5Lzf68PIbZ5yl7FFd74l/E0o9A8= -github.com/ethereum/go-ethereum v1.17.2-0.20260319135215-e5d453c086c7 h1:3iXPDQhD4YaF9wzx6um5lydHidwThQQ2E3SMQpAk7dM= -github.com/ethereum/go-ethereum v1.17.2-0.20260319135215-e5d453c086c7/go.mod h1:8BS3L+ky1nBsSvjoKueaUeEYxKnC0sbW2ImjVCXkpy8= -github.com/ethpandaops/beacon v0.67.1-0.20260324015045-f64d291dca36 h1:yUbJ9j85yYf+c0UR1d9TaQFH84tNIjVR97lbCdxZUIA= -github.com/ethpandaops/beacon v0.67.1-0.20260324015045-f64d291dca36/go.mod h1:ll2pYRTNhsKsewSmHcuun4Jj4cCn1NTVxc5ORaU/DiQ= -github.com/ethpandaops/ethcore v0.0.0-20260324015639-f83abb88486d h1:ORaeQtW6h98LiBfLek4eOoisQSePD610viaVq0XHG48= -github.com/ethpandaops/ethcore v0.0.0-20260324015639-f83abb88486d/go.mod h1:RtK637I9SqG0zn5sBTu/Xbxxy0FPwKRGaq910nbs+BI= +github.com/ethereum/go-ethereum v1.17.2-0.20260324190457-8f361e342cb9 h1:87oCZDemf+tvCIUtKt9EUtkfXbU/llIl41ML8+vZ8Mo= +github.com/ethereum/go-ethereum v1.17.2-0.20260324190457-8f361e342cb9/go.mod h1:KHcRXfGOUfUmKg51IhQ0IowiqZ6PqZf08CMtk0g5K1o= +github.com/ethpandaops/beacon v0.67.1-0.20260325033338-72e601905364 h1:Ogveqfj7DpZaqIrudz0zyilyM5Awu74E7IFcMIXnm0g= +github.com/ethpandaops/beacon v0.67.1-0.20260325033338-72e601905364/go.mod h1:HONwT8CSZmQMdHxIU8/Hlu5CHtLbAv7xqkYjeSLwyXI= +github.com/ethpandaops/ethcore v0.0.0-20260325033335-3648959229f1 h1:D9lprZ4qret+qJfQOTw2BM6otokTMb9FskW6qF1H1AA= +github.com/ethpandaops/ethcore v0.0.0-20260325033335-3648959229f1/go.mod h1:wNl2LzVorol8zVpAHUDxjKZKBX3hM5Einaf1Mn8OxLg= github.com/ethpandaops/ethereum-package-go v0.8.1 h1:VN5l8UXveyw7gp0Glj8BRzS/D5RKyvhLeaoi/C5Jy5M= github.com/ethpandaops/ethereum-package-go v0.8.1/go.mod h1:LQThCwlCeeNBTdXOFV+xSwudoced53x+o/Orya3Y+oo= github.com/ethpandaops/ethwallclock v0.4.0 h1:+sgnhf4pk6hLPukP076VxkiLloE4L0Yk1yat+ZyHh1g= diff --git a/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go b/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go index 19070709e..94ba35db8 100644 --- a/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go +++ b/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go @@ -352,6 +352,21 @@ func (b *BlockAccessListDeriver) processSlot( events = append(events, event) } + + for _, readKey := range entry.GetStorageReads() { + change := &xatuethv1.BlockAccessListChange{ + Address: address, + ChangeType: "storage_read", + StorageKey: readKey, + } + + event, err := b.createEvent(ctx, change, blockIdentifier, execBlockNumber, execBlockHash) + if err != nil { + return nil, errors.Wrap(err, "failed to create storage read event") + } + + events = append(events, event) + } } return events, nil diff --git a/pkg/proto/eth/v1/block_access_list.pb.go b/pkg/proto/eth/v1/block_access_list.pb.go index b457acb99..3b9407011 100644 --- a/pkg/proto/eth/v1/block_access_list.pb.go +++ b/pkg/proto/eth/v1/block_access_list.pb.go @@ -260,6 +260,7 @@ type BlockAccessListEntry struct { BalanceChanges []*BlockAccessListBalanceChange `protobuf:"bytes,3,rep,name=balance_changes,proto3" json:"balance_changes,omitempty"` NonceChanges []*BlockAccessListNonceChange `protobuf:"bytes,4,rep,name=nonce_changes,proto3" json:"nonce_changes,omitempty"` CodeChanges []*BlockAccessListCodeChange `protobuf:"bytes,5,rep,name=code_changes,proto3" json:"code_changes,omitempty"` + StorageReads []*wrapperspb.StringValue `protobuf:"bytes,6,rep,name=storage_reads,proto3" json:"storage_reads,omitempty"` } func (x *BlockAccessListEntry) Reset() { @@ -329,6 +330,13 @@ func (x *BlockAccessListEntry) GetCodeChanges() []*BlockAccessListCodeChange { return nil } +func (x *BlockAccessListEntry) GetStorageReads() []*wrapperspb.StringValue { + if x != nil { + return x.StorageReads + } + return nil +} + type BlockAccessList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -385,7 +393,7 @@ type BlockAccessListChange struct { unknownFields protoimpl.UnknownFields Address *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - // change_type is one of: "storage", "balance", "nonce", "code" + // change_type is one of: "storage", "balance", "nonce", "code", "storage_read" ChangeType string `protobuf:"bytes,2,opt,name=change_type,proto3" json:"change_type,omitempty"` BlockAccessIndex *wrapperspb.UInt32Value `protobuf:"bytes,3,opt,name=block_access_index,proto3" json:"block_access_index,omitempty"` // storage_key is set only for storage changes @@ -517,7 +525,7 @@ var file_pkg_proto_eth_v1_block_access_list_proto_rawDesc = []byte{ 0x77, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x5f, - 0x63, 0x6f, 0x64, 0x65, 0x22, 0x93, 0x03, 0x0a, 0x14, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, + 0x63, 0x6f, 0x64, 0x65, 0x22, 0xd7, 0x03, 0x0a, 0x14, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x36, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, @@ -542,35 +550,40 @@ var file_pkg_proto_eth_v1_block_access_list_proto_rawDesc = []byte{ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0c, 0x63, 0x6f, - 0x64, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x4e, 0x0a, 0x0f, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3b, 0x0a, - 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0xbb, 0x02, 0x0a, 0x15, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x4c, - 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, - 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3e, 0x0a, 0x0b, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x64, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x12, 0x3a, 0x0a, 0x09, - 0x6e, 0x65, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6e, - 0x65, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, - 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x73, 0x22, 0x4e, + 0x0a, 0x0f, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x3b, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0xbb, + 0x02, 0x0a, 0x15, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x4c, 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x3e, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, + 0x12, 0x3a, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2e, 0x5a, 0x2c, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, + 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -613,16 +626,17 @@ var file_pkg_proto_eth_v1_block_access_list_proto_depIdxs = []int32{ 1, // 11: xatu.eth.v1.BlockAccessListEntry.balance_changes:type_name -> xatu.eth.v1.BlockAccessListBalanceChange 2, // 12: xatu.eth.v1.BlockAccessListEntry.nonce_changes:type_name -> xatu.eth.v1.BlockAccessListNonceChange 3, // 13: xatu.eth.v1.BlockAccessListEntry.code_changes:type_name -> xatu.eth.v1.BlockAccessListCodeChange - 4, // 14: xatu.eth.v1.BlockAccessList.entries:type_name -> xatu.eth.v1.BlockAccessListEntry - 8, // 15: xatu.eth.v1.BlockAccessListChange.address:type_name -> google.protobuf.StringValue - 7, // 16: xatu.eth.v1.BlockAccessListChange.block_access_index:type_name -> google.protobuf.UInt32Value - 8, // 17: xatu.eth.v1.BlockAccessListChange.storage_key:type_name -> google.protobuf.StringValue - 8, // 18: xatu.eth.v1.BlockAccessListChange.new_value:type_name -> google.protobuf.StringValue - 19, // [19:19] is the sub-list for method output_type - 19, // [19:19] is the sub-list for method input_type - 19, // [19:19] is the sub-list for extension type_name - 19, // [19:19] is the sub-list for extension extendee - 0, // [0:19] is the sub-list for field type_name + 8, // 14: xatu.eth.v1.BlockAccessListEntry.storage_reads:type_name -> google.protobuf.StringValue + 4, // 15: xatu.eth.v1.BlockAccessList.entries:type_name -> xatu.eth.v1.BlockAccessListEntry + 8, // 16: xatu.eth.v1.BlockAccessListChange.address:type_name -> google.protobuf.StringValue + 7, // 17: xatu.eth.v1.BlockAccessListChange.block_access_index:type_name -> google.protobuf.UInt32Value + 8, // 18: xatu.eth.v1.BlockAccessListChange.storage_key:type_name -> google.protobuf.StringValue + 8, // 19: xatu.eth.v1.BlockAccessListChange.new_value:type_name -> google.protobuf.StringValue + 20, // [20:20] is the sub-list for method output_type + 20, // [20:20] is the sub-list for method input_type + 20, // [20:20] is the sub-list for extension type_name + 20, // [20:20] is the sub-list for extension extendee + 0, // [0:20] is the sub-list for field type_name } func init() { file_pkg_proto_eth_v1_block_access_list_proto_init() } diff --git a/pkg/proto/eth/v1/block_access_list.proto b/pkg/proto/eth/v1/block_access_list.proto index 0eb526d0e..669abba3f 100644 --- a/pkg/proto/eth/v1/block_access_list.proto +++ b/pkg/proto/eth/v1/block_access_list.proto @@ -43,6 +43,8 @@ message BlockAccessListEntry { [ json_name = "nonce_changes" ]; repeated BlockAccessListCodeChange code_changes = 5 [ json_name = "code_changes" ]; + repeated google.protobuf.StringValue storage_reads = 6 + [ json_name = "storage_reads" ]; } message BlockAccessList { @@ -54,7 +56,7 @@ message BlockAccessList { // becomes one row. message BlockAccessListChange { google.protobuf.StringValue address = 1; - // change_type is one of: "storage", "balance", "nonce", "code" + // change_type is one of: "storage", "balance", "nonce", "code", "storage_read" string change_type = 2 [ json_name = "change_type" ]; google.protobuf.UInt32Value block_access_index = 3 [ json_name = "block_access_index" ]; diff --git a/pkg/proto/eth/v1/conversion.go b/pkg/proto/eth/v1/conversion.go index c1702d877..5c6063b19 100644 --- a/pkg/proto/eth/v1/conversion.go +++ b/pkg/proto/eth/v1/conversion.go @@ -422,6 +422,15 @@ func NewBlockAccessListFromGloas(rawBAL gloas.BlockAccessList) *BlockAccessList }) } + // Storage reads (read-only slots, no value or tx index) + for _, slot := range access.StorageReads { + slotHash := slot.ToHash() + + entry.StorageReads = append(entry.StorageReads, &wrapperspb.StringValue{ + Value: fmt.Sprintf("0x%x", slotHash), + }) + } + entries = append(entries, entry) } diff --git a/pkg/proto/eth/v1/conversion_test.go b/pkg/proto/eth/v1/conversion_test.go index 3c1e2e34e..5ed421d8b 100644 --- a/pkg/proto/eth/v1/conversion_test.go +++ b/pkg/proto/eth/v1/conversion_test.go @@ -2,6 +2,7 @@ package v1 import ( "encoding/hex" + "fmt" "testing" ) @@ -107,6 +108,18 @@ func TestNewBlockAccessListFromGloas_RealDevnetData(t *testing.T) { t.Errorf("entry 0: expected 0 storage changes, got %d", len(entry0.GetStorageChanges())) } + if len(entry0.GetStorageReads()) != 4 { + t.Fatalf("entry 0: expected 4 storage reads, got %d", len(entry0.GetStorageReads())) + } + + // Verify read slots are sequential (0x00, 0x01, 0x02, 0x03) + for i, r := range entry0.GetStorageReads() { + expected := fmt.Sprintf("0x00000000000000000000000000000000000000000000000000000000000000%02x", i) + if r.GetValue() != expected { + t.Errorf("entry 0 read[%d]: expected %s, got %s", i, expected, r.GetValue()) + } + } + // Entry 2: History Storage Contract - 1 storage write entry2 := result.GetEntries()[2] if len(entry2.GetStorageChanges()) != 1 { From 689b4d36f0cb5934749a47258695ab3d6c204b55 Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Wed, 25 Mar 2026 13:39:50 +1000 Subject: [PATCH 13/23] feat(proto): introduce BlockAccessListStorageRead message for enhanced storage read tracking fix(conversion): adjust handling of storage reads to use new BlockAccessListStorageRead structure --- .../beacon/eth/v2/block_access_list.go | 2 +- pkg/proto/eth/v1/block_access_list.pb.go | 270 +++++++++++------- pkg/proto/eth/v1/block_access_list.proto | 6 +- pkg/proto/eth/v1/conversion.go | 4 +- pkg/proto/eth/v1/conversion_test.go | 4 +- 5 files changed, 178 insertions(+), 108 deletions(-) diff --git a/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go b/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go index 94ba35db8..a5a82b040 100644 --- a/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go +++ b/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go @@ -357,7 +357,7 @@ func (b *BlockAccessListDeriver) processSlot( change := &xatuethv1.BlockAccessListChange{ Address: address, ChangeType: "storage_read", - StorageKey: readKey, + StorageKey: readKey.GetKey(), } event, err := b.createEvent(ctx, change, blockIdentifier, execBlockNumber, execBlockHash) diff --git a/pkg/proto/eth/v1/block_access_list.pb.go b/pkg/proto/eth/v1/block_access_list.pb.go index 3b9407011..784a9c1e2 100644 --- a/pkg/proto/eth/v1/block_access_list.pb.go +++ b/pkg/proto/eth/v1/block_access_list.pb.go @@ -250,6 +250,53 @@ func (x *BlockAccessListCodeChange) GetNewCode() *wrapperspb.StringValue { return nil } +type BlockAccessListStorageRead struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` +} + +func (x *BlockAccessListStorageRead) Reset() { + *x = BlockAccessListStorageRead{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockAccessListStorageRead) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockAccessListStorageRead) ProtoMessage() {} + +func (x *BlockAccessListStorageRead) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_block_access_list_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 BlockAccessListStorageRead.ProtoReflect.Descriptor instead. +func (*BlockAccessListStorageRead) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_block_access_list_proto_rawDescGZIP(), []int{4} +} + +func (x *BlockAccessListStorageRead) GetKey() *wrapperspb.StringValue { + if x != nil { + return x.Key + } + return nil +} + type BlockAccessListEntry struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -260,13 +307,13 @@ type BlockAccessListEntry struct { BalanceChanges []*BlockAccessListBalanceChange `protobuf:"bytes,3,rep,name=balance_changes,proto3" json:"balance_changes,omitempty"` NonceChanges []*BlockAccessListNonceChange `protobuf:"bytes,4,rep,name=nonce_changes,proto3" json:"nonce_changes,omitempty"` CodeChanges []*BlockAccessListCodeChange `protobuf:"bytes,5,rep,name=code_changes,proto3" json:"code_changes,omitempty"` - StorageReads []*wrapperspb.StringValue `protobuf:"bytes,6,rep,name=storage_reads,proto3" json:"storage_reads,omitempty"` + StorageReads []*BlockAccessListStorageRead `protobuf:"bytes,6,rep,name=storage_reads,proto3" json:"storage_reads,omitempty"` } func (x *BlockAccessListEntry) Reset() { *x = BlockAccessListEntry{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[4] + mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -279,7 +326,7 @@ func (x *BlockAccessListEntry) String() string { func (*BlockAccessListEntry) ProtoMessage() {} func (x *BlockAccessListEntry) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[4] + mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -292,7 +339,7 @@ func (x *BlockAccessListEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockAccessListEntry.ProtoReflect.Descriptor instead. func (*BlockAccessListEntry) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v1_block_access_list_proto_rawDescGZIP(), []int{4} + return file_pkg_proto_eth_v1_block_access_list_proto_rawDescGZIP(), []int{5} } func (x *BlockAccessListEntry) GetAddress() *wrapperspb.StringValue { @@ -330,7 +377,7 @@ func (x *BlockAccessListEntry) GetCodeChanges() []*BlockAccessListCodeChange { return nil } -func (x *BlockAccessListEntry) GetStorageReads() []*wrapperspb.StringValue { +func (x *BlockAccessListEntry) GetStorageReads() []*BlockAccessListStorageRead { if x != nil { return x.StorageReads } @@ -348,7 +395,7 @@ type BlockAccessList struct { func (x *BlockAccessList) Reset() { *x = BlockAccessList{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[5] + mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -361,7 +408,7 @@ func (x *BlockAccessList) String() string { func (*BlockAccessList) ProtoMessage() {} func (x *BlockAccessList) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[5] + mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -374,7 +421,7 @@ func (x *BlockAccessList) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockAccessList.ProtoReflect.Descriptor instead. func (*BlockAccessList) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v1_block_access_list_proto_rawDescGZIP(), []int{5} + return file_pkg_proto_eth_v1_block_access_list_proto_rawDescGZIP(), []int{6} } func (x *BlockAccessList) GetEntries() []*BlockAccessListEntry { @@ -405,7 +452,7 @@ type BlockAccessListChange struct { func (x *BlockAccessListChange) Reset() { *x = BlockAccessListChange{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[6] + mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -418,7 +465,7 @@ func (x *BlockAccessListChange) String() string { func (*BlockAccessListChange) ProtoMessage() {} func (x *BlockAccessListChange) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[6] + mi := &file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -431,7 +478,7 @@ func (x *BlockAccessListChange) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockAccessListChange.ProtoReflect.Descriptor instead. func (*BlockAccessListChange) Descriptor() ([]byte, []int) { - return file_pkg_proto_eth_v1_block_access_list_proto_rawDescGZIP(), []int{6} + return file_pkg_proto_eth_v1_block_access_list_proto_rawDescGZIP(), []int{7} } func (x *BlockAccessListChange) GetAddress() *wrapperspb.StringValue { @@ -525,65 +572,70 @@ var file_pkg_proto_eth_v1_block_access_list_proto_rawDesc = []byte{ 0x77, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x5f, - 0x63, 0x6f, 0x64, 0x65, 0x22, 0xd7, 0x03, 0x0a, 0x14, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x36, 0x0a, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x53, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x0f, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0f, - 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, - 0x4d, 0x0a, 0x0d, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, - 0x0d, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x4a, - 0x0a, 0x0c, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x63, 0x6f, 0x64, 0x65, 0x22, 0x4c, 0x0a, 0x1a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x61, 0x64, 0x12, 0x2e, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x22, 0xe2, 0x03, 0x0a, 0x14, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x36, 0x0a, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x53, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x0f, 0x62, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0f, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x4d, 0x0a, + 0x0d, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0c, 0x63, 0x6f, - 0x64, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x73, 0x22, 0x4e, - 0x0a, 0x0f, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x3b, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x6e, + 0x6f, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0c, + 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0xbb, - 0x02, 0x0a, 0x15, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x4c, 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x43, 0x6f, 0x64, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x64, 0x65, + 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x61, 0x64, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x73, 0x22, 0x4e, 0x0a, 0x0f, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x07, 0x65, 0x6e, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, + 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0xbb, 0x02, 0x0a, 0x15, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x36, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x4c, 0x0a, 0x12, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3e, 0x0a, 0x0b, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x3e, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, - 0x12, 0x3a, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2e, 0x5a, 0x2c, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, - 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x12, 0x3a, 0x0a, 0x09, 0x6e, 0x65, 0x77, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, 0x2f, + 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, + 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -598,45 +650,47 @@ func file_pkg_proto_eth_v1_block_access_list_proto_rawDescGZIP() []byte { return file_pkg_proto_eth_v1_block_access_list_proto_rawDescData } -var file_pkg_proto_eth_v1_block_access_list_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_pkg_proto_eth_v1_block_access_list_proto_msgTypes = make([]protoimpl.MessageInfo, 8) var file_pkg_proto_eth_v1_block_access_list_proto_goTypes = []any{ (*BlockAccessListStorageChange)(nil), // 0: xatu.eth.v1.BlockAccessListStorageChange (*BlockAccessListBalanceChange)(nil), // 1: xatu.eth.v1.BlockAccessListBalanceChange (*BlockAccessListNonceChange)(nil), // 2: xatu.eth.v1.BlockAccessListNonceChange (*BlockAccessListCodeChange)(nil), // 3: xatu.eth.v1.BlockAccessListCodeChange - (*BlockAccessListEntry)(nil), // 4: xatu.eth.v1.BlockAccessListEntry - (*BlockAccessList)(nil), // 5: xatu.eth.v1.BlockAccessList - (*BlockAccessListChange)(nil), // 6: xatu.eth.v1.BlockAccessListChange - (*wrapperspb.UInt32Value)(nil), // 7: google.protobuf.UInt32Value - (*wrapperspb.StringValue)(nil), // 8: google.protobuf.StringValue - (*wrapperspb.UInt64Value)(nil), // 9: google.protobuf.UInt64Value + (*BlockAccessListStorageRead)(nil), // 4: xatu.eth.v1.BlockAccessListStorageRead + (*BlockAccessListEntry)(nil), // 5: xatu.eth.v1.BlockAccessListEntry + (*BlockAccessList)(nil), // 6: xatu.eth.v1.BlockAccessList + (*BlockAccessListChange)(nil), // 7: xatu.eth.v1.BlockAccessListChange + (*wrapperspb.UInt32Value)(nil), // 8: google.protobuf.UInt32Value + (*wrapperspb.StringValue)(nil), // 9: google.protobuf.StringValue + (*wrapperspb.UInt64Value)(nil), // 10: google.protobuf.UInt64Value } var file_pkg_proto_eth_v1_block_access_list_proto_depIdxs = []int32{ - 7, // 0: xatu.eth.v1.BlockAccessListStorageChange.block_access_index:type_name -> google.protobuf.UInt32Value - 8, // 1: xatu.eth.v1.BlockAccessListStorageChange.key:type_name -> google.protobuf.StringValue - 8, // 2: xatu.eth.v1.BlockAccessListStorageChange.new_value:type_name -> google.protobuf.StringValue - 7, // 3: xatu.eth.v1.BlockAccessListBalanceChange.block_access_index:type_name -> google.protobuf.UInt32Value - 8, // 4: xatu.eth.v1.BlockAccessListBalanceChange.post_balance:type_name -> google.protobuf.StringValue - 7, // 5: xatu.eth.v1.BlockAccessListNonceChange.block_access_index:type_name -> google.protobuf.UInt32Value - 9, // 6: xatu.eth.v1.BlockAccessListNonceChange.new_nonce:type_name -> google.protobuf.UInt64Value - 7, // 7: xatu.eth.v1.BlockAccessListCodeChange.block_access_index:type_name -> google.protobuf.UInt32Value - 8, // 8: xatu.eth.v1.BlockAccessListCodeChange.new_code:type_name -> google.protobuf.StringValue - 8, // 9: xatu.eth.v1.BlockAccessListEntry.address:type_name -> google.protobuf.StringValue - 0, // 10: xatu.eth.v1.BlockAccessListEntry.storage_changes:type_name -> xatu.eth.v1.BlockAccessListStorageChange - 1, // 11: xatu.eth.v1.BlockAccessListEntry.balance_changes:type_name -> xatu.eth.v1.BlockAccessListBalanceChange - 2, // 12: xatu.eth.v1.BlockAccessListEntry.nonce_changes:type_name -> xatu.eth.v1.BlockAccessListNonceChange - 3, // 13: xatu.eth.v1.BlockAccessListEntry.code_changes:type_name -> xatu.eth.v1.BlockAccessListCodeChange - 8, // 14: xatu.eth.v1.BlockAccessListEntry.storage_reads:type_name -> google.protobuf.StringValue - 4, // 15: xatu.eth.v1.BlockAccessList.entries:type_name -> xatu.eth.v1.BlockAccessListEntry - 8, // 16: xatu.eth.v1.BlockAccessListChange.address:type_name -> google.protobuf.StringValue - 7, // 17: xatu.eth.v1.BlockAccessListChange.block_access_index:type_name -> google.protobuf.UInt32Value - 8, // 18: xatu.eth.v1.BlockAccessListChange.storage_key:type_name -> google.protobuf.StringValue - 8, // 19: xatu.eth.v1.BlockAccessListChange.new_value:type_name -> google.protobuf.StringValue - 20, // [20:20] is the sub-list for method output_type - 20, // [20:20] is the sub-list for method input_type - 20, // [20:20] is the sub-list for extension type_name - 20, // [20:20] is the sub-list for extension extendee - 0, // [0:20] is the sub-list for field type_name + 8, // 0: xatu.eth.v1.BlockAccessListStorageChange.block_access_index:type_name -> google.protobuf.UInt32Value + 9, // 1: xatu.eth.v1.BlockAccessListStorageChange.key:type_name -> google.protobuf.StringValue + 9, // 2: xatu.eth.v1.BlockAccessListStorageChange.new_value:type_name -> google.protobuf.StringValue + 8, // 3: xatu.eth.v1.BlockAccessListBalanceChange.block_access_index:type_name -> google.protobuf.UInt32Value + 9, // 4: xatu.eth.v1.BlockAccessListBalanceChange.post_balance:type_name -> google.protobuf.StringValue + 8, // 5: xatu.eth.v1.BlockAccessListNonceChange.block_access_index:type_name -> google.protobuf.UInt32Value + 10, // 6: xatu.eth.v1.BlockAccessListNonceChange.new_nonce:type_name -> google.protobuf.UInt64Value + 8, // 7: xatu.eth.v1.BlockAccessListCodeChange.block_access_index:type_name -> google.protobuf.UInt32Value + 9, // 8: xatu.eth.v1.BlockAccessListCodeChange.new_code:type_name -> google.protobuf.StringValue + 9, // 9: xatu.eth.v1.BlockAccessListStorageRead.key:type_name -> google.protobuf.StringValue + 9, // 10: xatu.eth.v1.BlockAccessListEntry.address:type_name -> google.protobuf.StringValue + 0, // 11: xatu.eth.v1.BlockAccessListEntry.storage_changes:type_name -> xatu.eth.v1.BlockAccessListStorageChange + 1, // 12: xatu.eth.v1.BlockAccessListEntry.balance_changes:type_name -> xatu.eth.v1.BlockAccessListBalanceChange + 2, // 13: xatu.eth.v1.BlockAccessListEntry.nonce_changes:type_name -> xatu.eth.v1.BlockAccessListNonceChange + 3, // 14: xatu.eth.v1.BlockAccessListEntry.code_changes:type_name -> xatu.eth.v1.BlockAccessListCodeChange + 4, // 15: xatu.eth.v1.BlockAccessListEntry.storage_reads:type_name -> xatu.eth.v1.BlockAccessListStorageRead + 5, // 16: xatu.eth.v1.BlockAccessList.entries:type_name -> xatu.eth.v1.BlockAccessListEntry + 9, // 17: xatu.eth.v1.BlockAccessListChange.address:type_name -> google.protobuf.StringValue + 8, // 18: xatu.eth.v1.BlockAccessListChange.block_access_index:type_name -> google.protobuf.UInt32Value + 9, // 19: xatu.eth.v1.BlockAccessListChange.storage_key:type_name -> google.protobuf.StringValue + 9, // 20: xatu.eth.v1.BlockAccessListChange.new_value:type_name -> google.protobuf.StringValue + 21, // [21:21] is the sub-list for method output_type + 21, // [21:21] is the sub-list for method input_type + 21, // [21:21] is the sub-list for extension type_name + 21, // [21:21] is the sub-list for extension extendee + 0, // [0:21] is the sub-list for field type_name } func init() { file_pkg_proto_eth_v1_block_access_list_proto_init() } @@ -694,7 +748,7 @@ func file_pkg_proto_eth_v1_block_access_list_proto_init() { } } file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*BlockAccessListEntry); i { + switch v := v.(*BlockAccessListStorageRead); i { case 0: return &v.state case 1: @@ -706,7 +760,7 @@ func file_pkg_proto_eth_v1_block_access_list_proto_init() { } } file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*BlockAccessList); i { + switch v := v.(*BlockAccessListEntry); i { case 0: return &v.state case 1: @@ -718,6 +772,18 @@ func file_pkg_proto_eth_v1_block_access_list_proto_init() { } } file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[6].Exporter = func(v any, i int) any { + switch v := v.(*BlockAccessList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_eth_v1_block_access_list_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*BlockAccessListChange); i { case 0: return &v.state @@ -736,7 +802,7 @@ func file_pkg_proto_eth_v1_block_access_list_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pkg_proto_eth_v1_block_access_list_proto_rawDesc, NumEnums: 0, - NumMessages: 7, + NumMessages: 8, NumExtensions: 0, NumServices: 0, }, diff --git a/pkg/proto/eth/v1/block_access_list.proto b/pkg/proto/eth/v1/block_access_list.proto index 669abba3f..15a334235 100644 --- a/pkg/proto/eth/v1/block_access_list.proto +++ b/pkg/proto/eth/v1/block_access_list.proto @@ -33,6 +33,10 @@ message BlockAccessListCodeChange { google.protobuf.StringValue new_code = 2 [ json_name = "new_code" ]; } +message BlockAccessListStorageRead { + google.protobuf.StringValue key = 1; +} + message BlockAccessListEntry { google.protobuf.StringValue address = 1; repeated BlockAccessListStorageChange storage_changes = 2 @@ -43,7 +47,7 @@ message BlockAccessListEntry { [ json_name = "nonce_changes" ]; repeated BlockAccessListCodeChange code_changes = 5 [ json_name = "code_changes" ]; - repeated google.protobuf.StringValue storage_reads = 6 + repeated BlockAccessListStorageRead storage_reads = 6 [ json_name = "storage_reads" ]; } diff --git a/pkg/proto/eth/v1/conversion.go b/pkg/proto/eth/v1/conversion.go index 5c6063b19..a3cc22378 100644 --- a/pkg/proto/eth/v1/conversion.go +++ b/pkg/proto/eth/v1/conversion.go @@ -426,8 +426,8 @@ func NewBlockAccessListFromGloas(rawBAL gloas.BlockAccessList) *BlockAccessList for _, slot := range access.StorageReads { slotHash := slot.ToHash() - entry.StorageReads = append(entry.StorageReads, &wrapperspb.StringValue{ - Value: fmt.Sprintf("0x%x", slotHash), + entry.StorageReads = append(entry.StorageReads, &BlockAccessListStorageRead{ + Key: &wrapperspb.StringValue{Value: fmt.Sprintf("0x%x", slotHash)}, }) } diff --git a/pkg/proto/eth/v1/conversion_test.go b/pkg/proto/eth/v1/conversion_test.go index 5ed421d8b..0b9172582 100644 --- a/pkg/proto/eth/v1/conversion_test.go +++ b/pkg/proto/eth/v1/conversion_test.go @@ -115,8 +115,8 @@ func TestNewBlockAccessListFromGloas_RealDevnetData(t *testing.T) { // Verify read slots are sequential (0x00, 0x01, 0x02, 0x03) for i, r := range entry0.GetStorageReads() { expected := fmt.Sprintf("0x00000000000000000000000000000000000000000000000000000000000000%02x", i) - if r.GetValue() != expected { - t.Errorf("entry 0 read[%d]: expected %s, got %s", i, expected, r.GetValue()) + if r.GetKey().GetValue() != expected { + t.Errorf("entry 0 read[%d]: expected %s, got %s", i, expected, r.GetKey().GetValue()) } } From 3347d95e62126b17ee579bae72cecc63ae498cab Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Wed, 25 Mar 2026 14:42:25 +1000 Subject: [PATCH 14/23] feat(block_access_list): add support for "touched" event for accounts with no state changes to enhance parallel execution analysis feat(proto): update BlockAccessListChange to include "touched" in change_type options for better clarity on account status --- .../beacon/eth/v2/block_access_list.go | 21 +++++++++++++++++++ pkg/proto/eth/v1/block_access_list.proto | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go b/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go index a5a82b040..a91b06286 100644 --- a/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go +++ b/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go @@ -367,6 +367,27 @@ func (b *BlockAccessListDeriver) processSlot( events = append(events, event) } + + // Emit a "touched" event for accounts with no state changes and no storage + // reads. These are accounts accessed via BALANCE, EXTCODESIZE, calls, etc. + // that had no state interactions. Valuable for parallel execution analysis. + if len(entry.GetStorageChanges()) == 0 && + len(entry.GetStorageReads()) == 0 && + len(entry.GetBalanceChanges()) == 0 && + len(entry.GetNonceChanges()) == 0 && + len(entry.GetCodeChanges()) == 0 { + change := &xatuethv1.BlockAccessListChange{ + Address: address, + ChangeType: "touched", + } + + event, err := b.createEvent(ctx, change, blockIdentifier, execBlockNumber, execBlockHash) + if err != nil { + return nil, errors.Wrap(err, "failed to create touched account event") + } + + events = append(events, event) + } } return events, nil diff --git a/pkg/proto/eth/v1/block_access_list.proto b/pkg/proto/eth/v1/block_access_list.proto index 15a334235..82b782fd5 100644 --- a/pkg/proto/eth/v1/block_access_list.proto +++ b/pkg/proto/eth/v1/block_access_list.proto @@ -60,7 +60,7 @@ message BlockAccessList { // becomes one row. message BlockAccessListChange { google.protobuf.StringValue address = 1; - // change_type is one of: "storage", "balance", "nonce", "code", "storage_read" + // change_type is one of: "storage", "balance", "nonce", "code", "storage_read", "touched" string change_type = 2 [ json_name = "change_type" ]; google.protobuf.UInt32Value block_access_index = 3 [ json_name = "block_access_index" ]; From eb1bd3323c9f906b40e4c6bf2c92fa821d61ccda Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Thu, 26 Mar 2026 12:18:06 +1000 Subject: [PATCH 15/23] feat: prepare epbs types --- pkg/proto/eth/v1/builder.proto | 29 ++++++++++ pkg/proto/eth/v1/execution_payload_bid.proto | 46 ++++++++++++++++ .../eth/v1/execution_payload_envelope.proto | 39 +++++++++++++ pkg/proto/eth/v1/payload_attestation.proto | 55 +++++++++++++++++++ pkg/proto/eth/v1/proposer_preferences.proto | 33 +++++++++++ pkg/proto/eth/v2/beacon_block.proto | 17 ++++-- pkg/proto/xatu/event_ingester.proto | 46 ++++++++++++++++ 7 files changed, 260 insertions(+), 5 deletions(-) create mode 100644 pkg/proto/eth/v1/builder.proto create mode 100644 pkg/proto/eth/v1/execution_payload_bid.proto create mode 100644 pkg/proto/eth/v1/execution_payload_envelope.proto create mode 100644 pkg/proto/eth/v1/payload_attestation.proto create mode 100644 pkg/proto/eth/v1/proposer_preferences.proto diff --git a/pkg/proto/eth/v1/builder.proto b/pkg/proto/eth/v1/builder.proto new file mode 100644 index 000000000..420c6aea0 --- /dev/null +++ b/pkg/proto/eth/v1/builder.proto @@ -0,0 +1,29 @@ +syntax = "proto3"; + +// EIP-7732: ePBS Builder type +// https://github.com/ethereum/consensus-specs/blob/master/specs/gloas/beacon-chain.md#builder + +package xatu.eth.v1; + +option go_package = "github.com/ethpandaops/xatu/pkg/proto/eth/v1"; + +import "google/protobuf/descriptor.proto"; +import "google/protobuf/wrappers.proto"; + +// Builder represents an enshrined builder in the beacon state. +message Builder { + string pubkey = 1; + + // uint8 in the spec; proto3 has no uint8, so we use UInt32Value. + google.protobuf.UInt32Value version = 2; + + string execution_address = 3 [ json_name = "execution_address" ]; + + google.protobuf.UInt64Value balance = 4; + + google.protobuf.UInt64Value deposit_epoch = 5 + [ json_name = "deposit_epoch" ]; + + google.protobuf.UInt64Value withdrawable_epoch = 6 + [ json_name = "withdrawable_epoch" ]; +} diff --git a/pkg/proto/eth/v1/execution_payload_bid.proto b/pkg/proto/eth/v1/execution_payload_bid.proto new file mode 100644 index 000000000..7933a016a --- /dev/null +++ b/pkg/proto/eth/v1/execution_payload_bid.proto @@ -0,0 +1,46 @@ +syntax = "proto3"; + +// EIP-7732: ePBS Execution Payload Bid types +// https://github.com/ethereum/consensus-specs/blob/master/specs/gloas/beacon-chain.md#executionpayloadbid + +package xatu.eth.v1; + +option go_package = "github.com/ethpandaops/xatu/pkg/proto/eth/v1"; + +import "google/protobuf/descriptor.proto"; +import "google/protobuf/wrappers.proto"; + +// ExecutionPayloadBid is the builder's bid included in the beacon block body. +message ExecutionPayloadBid { + string parent_block_hash = 1 [ json_name = "parent_block_hash" ]; + + string parent_block_root = 2 [ json_name = "parent_block_root" ]; + + string block_hash = 3 [ json_name = "block_hash" ]; + + string prev_randao = 4 [ json_name = "prev_randao" ]; + + string fee_recipient = 5 [ json_name = "fee_recipient" ]; + + google.protobuf.UInt64Value gas_limit = 6 [ json_name = "gas_limit" ]; + + google.protobuf.UInt64Value builder_index = 7 + [ json_name = "builder_index" ]; + + google.protobuf.UInt64Value slot = 8 [ json_name = "slot" ]; + + google.protobuf.UInt64Value value = 9 [ json_name = "value" ]; + + google.protobuf.UInt64Value execution_payment = 10 + [ json_name = "execution_payment" ]; + + repeated string blob_kzg_commitments = 11 + [ json_name = "blob_kzg_commitments" ]; +} + +// SignedExecutionPayloadBid wraps ExecutionPayloadBid with the builder's signature. +message SignedExecutionPayloadBid { + ExecutionPayloadBid message = 1; + + string signature = 2; +} diff --git a/pkg/proto/eth/v1/execution_payload_envelope.proto b/pkg/proto/eth/v1/execution_payload_envelope.proto new file mode 100644 index 000000000..837624e74 --- /dev/null +++ b/pkg/proto/eth/v1/execution_payload_envelope.proto @@ -0,0 +1,39 @@ +syntax = "proto3"; + +// EIP-7732: ePBS Execution Payload Envelope types +// https://github.com/ethereum/consensus-specs/blob/master/specs/gloas/beacon-chain.md#executionpayloadenvelope + +package xatu.eth.v1; + +option go_package = "github.com/ethpandaops/xatu/pkg/proto/eth/v1"; + +import "google/protobuf/descriptor.proto"; +import "google/protobuf/wrappers.proto"; +import "pkg/proto/eth/v1/execution_engine.proto"; +import "pkg/proto/eth/v1/execution_requests.proto"; + +// ExecutionPayloadEnvelope is the container delivered by the builder +// separately from the beacon block (~2s after block). +message ExecutionPayloadEnvelope { + ExecutionPayloadGloas payload = 1; + + ElectraExecutionRequests execution_requests = 2 + [ json_name = "execution_requests" ]; + + google.protobuf.UInt64Value builder_index = 3 + [ json_name = "builder_index" ]; + + string beacon_block_root = 4 [ json_name = "beacon_block_root" ]; + + google.protobuf.UInt64Value slot = 5 [ json_name = "slot" ]; + + string state_root = 6 [ json_name = "state_root" ]; +} + +// SignedExecutionPayloadEnvelope wraps ExecutionPayloadEnvelope with the +// builder's signature. +message SignedExecutionPayloadEnvelope { + ExecutionPayloadEnvelope message = 1; + + string signature = 2; +} diff --git a/pkg/proto/eth/v1/payload_attestation.proto b/pkg/proto/eth/v1/payload_attestation.proto new file mode 100644 index 000000000..d7f1c30f3 --- /dev/null +++ b/pkg/proto/eth/v1/payload_attestation.proto @@ -0,0 +1,55 @@ +syntax = "proto3"; + +// EIP-7732: ePBS Payload Attestation types +// https://github.com/ethereum/consensus-specs/blob/master/specs/gloas/beacon-chain.md#payloadattestationdata + +package xatu.eth.v1; + +option go_package = "github.com/ethpandaops/xatu/pkg/proto/eth/v1"; + +import "google/protobuf/descriptor.proto"; +import "google/protobuf/wrappers.proto"; + +// PayloadAttestationData is the data that PTC validators attest to. +message PayloadAttestationData { + string beacon_block_root = 1 [ json_name = "beacon_block_root" ]; + + google.protobuf.UInt64Value slot = 2 [ json_name = "slot" ]; + + bool payload_present = 3 [ json_name = "payload_present" ]; + + bool blob_data_available = 4 [ json_name = "blob_data_available" ]; +} + +// PayloadAttestationMessage is an individual PTC validator's attestation. +// ~512 of these are produced per slot. +message PayloadAttestationMessage { + google.protobuf.UInt64Value validator_index = 1 + [ json_name = "validator_index" ]; + + PayloadAttestationData data = 2; + + string signature = 3; +} + +// PayloadAttestation is the aggregated PTC attestation included in the block body. +// Max MAX_PAYLOAD_ATTESTATIONS (4) per block. +message PayloadAttestation { + // Bitvector[PTC_SIZE] (512 bits) as hex string + string aggregation_bits = 1 [ json_name = "aggregation_bits" ]; + + PayloadAttestationData data = 2; + + string signature = 3; +} + +// IndexedPayloadAttestation is a PayloadAttestation with attesting indices +// expanded from the aggregation bits. +message IndexedPayloadAttestation { + repeated google.protobuf.UInt64Value attesting_indices = 1 + [ json_name = "attesting_indices" ]; + + PayloadAttestationData data = 2; + + string signature = 3; +} diff --git a/pkg/proto/eth/v1/proposer_preferences.proto b/pkg/proto/eth/v1/proposer_preferences.proto new file mode 100644 index 000000000..cee9de03d --- /dev/null +++ b/pkg/proto/eth/v1/proposer_preferences.proto @@ -0,0 +1,33 @@ +syntax = "proto3"; + +// EIP-7732: ePBS Proposer Preferences types +// https://github.com/ethereum/consensus-specs/blob/master/specs/gloas/p2p-interface.md#new-proposerpreferences + +package xatu.eth.v1; + +option go_package = "github.com/ethpandaops/xatu/pkg/proto/eth/v1"; + +import "google/protobuf/descriptor.proto"; +import "google/protobuf/wrappers.proto"; + +// ProposerPreferences signals the proposer's preferences for their upcoming +// slot (fee recipient, gas limit). Gossiped on P2P. +message ProposerPreferences { + google.protobuf.UInt64Value proposal_slot = 1 + [ json_name = "proposal_slot" ]; + + google.protobuf.UInt64Value validator_index = 2 + [ json_name = "validator_index" ]; + + string fee_recipient = 3 [ json_name = "fee_recipient" ]; + + google.protobuf.UInt64Value gas_limit = 4 [ json_name = "gas_limit" ]; +} + +// SignedProposerPreferences wraps ProposerPreferences with the proposer's +// signature. +message SignedProposerPreferences { + ProposerPreferences message = 1; + + string signature = 2; +} diff --git a/pkg/proto/eth/v2/beacon_block.proto b/pkg/proto/eth/v2/beacon_block.proto index 24ef88b8c..2c99b4e33 100644 --- a/pkg/proto/eth/v2/beacon_block.proto +++ b/pkg/proto/eth/v2/beacon_block.proto @@ -12,6 +12,8 @@ import "google/protobuf/descriptor.proto"; import "pkg/proto/eth/v1/attestation.proto"; import "pkg/proto/eth/v1/beacon_block.proto"; import "pkg/proto/eth/v1/execution_engine.proto"; +import "pkg/proto/eth/v1/execution_payload_bid.proto"; +import "pkg/proto/eth/v1/payload_attestation.proto"; import "pkg/proto/eth/v2/withdrawals.proto"; import "pkg/proto/eth/v1/execution_requests.proto"; @@ -560,16 +562,21 @@ message BeaconBlockBodyGloas { v1.SyncAggregate sync_aggregate = 9 [ json_name = "sync_aggregate" ]; - v1.ExecutionPayloadGloas execution_payload = 10 - [ json_name = "execution_payload" ]; + // EIP-7732: execution_payload, blob_kzg_commitments, and + // execution_requests moved to ExecutionPayloadEnvelope. + reserved 10, 12, 13; + reserved "execution_payload", "blob_kzg_commitments", "execution_requests"; repeated SignedBLSToExecutionChange bls_to_execution_changes = 11 [ json_name = "bls_to_execution_changes" ]; - repeated string blob_kzg_commitments = 12 - [ json_name = "blob_kzg_commitments" ]; + // EIP-7732: Builder's bid replaces inline execution payload. + v1.SignedExecutionPayloadBid signed_execution_payload_bid = 14 + [ json_name = "signed_execution_payload_bid" ]; - v1.ElectraExecutionRequests execution_requests = 13 [ json_name = "execution_requests" ]; + // EIP-7732: Aggregated PTC attestations (max 4 per block). + repeated v1.PayloadAttestation payload_attestations = 15 + [ json_name = "payload_attestations" ]; } message BlindedBeaconBlockBodyCapella { diff --git a/pkg/proto/xatu/event_ingester.proto b/pkg/proto/xatu/event_ingester.proto index 36c6e4967..afeee6271 100644 --- a/pkg/proto/xatu/event_ingester.proto +++ b/pkg/proto/xatu/event_ingester.proto @@ -20,6 +20,10 @@ import "pkg/proto/eth/v1/execution_engine.proto"; import "pkg/proto/eth/v1/validator.proto"; import "pkg/proto/eth/v1/sync_committee.proto"; import "pkg/proto/eth/v1/block_access_list.proto"; +import "pkg/proto/eth/v1/payload_attestation.proto"; +import "pkg/proto/eth/v1/execution_payload_bid.proto"; +import "pkg/proto/eth/v1/execution_payload_envelope.proto"; +import "pkg/proto/eth/v1/proposer_preferences.proto"; import "pkg/proto/mevrelay/bids.proto"; import "pkg/proto/mevrelay/relay.proto"; @@ -1999,6 +2003,22 @@ message Event { EXECUTION_BLOCK_METRICS = 87; LIBP2P_TRACE_IDENTIFY = 88; BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST = 89; + + // EIP-7732 ePBS: Sentry SSE events + BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD = 90; + BEACON_API_ETH_V1_EVENTS_PAYLOAD_ATTESTATION = 91; + BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD_BID = 92; + BEACON_API_ETH_V1_EVENTS_PROPOSER_PREFERENCES = 93; + + // EIP-7732 ePBS: Cannon derived events + BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION = 94; + BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID = 95; + + // EIP-7732 ePBS: P2P gossip events + LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_ENVELOPE = 96; + LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_BID = 97; + LIBP2P_TRACE_GOSSIPSUB_PAYLOAD_ATTESTATION_MESSAGE = 98; + LIBP2P_TRACE_GOSSIPSUB_PROPOSER_PREFERENCES = 99; } // Name is the name of the event. Name name = 1; @@ -2308,6 +2328,32 @@ message DecoratedEvent { [ json_name = "EXECUTION_BLOCK_METRICS" ]; xatu.eth.v1.BlockAccessListChange eth_v2_beacon_block_access_list = 210 [ json_name = "BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST" ]; + + // EIP-7732 ePBS: Sentry SSE events + xatu.eth.v1.SignedExecutionPayloadEnvelope eth_v1_events_execution_payload = 211 + [ json_name = "BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD" ]; + xatu.eth.v1.PayloadAttestationMessage eth_v1_events_payload_attestation = 212 + [ json_name = "BEACON_API_ETH_V1_EVENTS_PAYLOAD_ATTESTATION" ]; + xatu.eth.v1.SignedExecutionPayloadBid eth_v1_events_execution_payload_bid = 213 + [ json_name = "BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD_BID" ]; + xatu.eth.v1.SignedProposerPreferences eth_v1_events_proposer_preferences = 214 + [ json_name = "BEACON_API_ETH_V1_EVENTS_PROPOSER_PREFERENCES" ]; + + // EIP-7732 ePBS: Cannon derived events + xatu.eth.v1.PayloadAttestation eth_v2_beacon_block_payload_attestation = 215 + [ json_name = "BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION" ]; + xatu.eth.v1.SignedExecutionPayloadBid eth_v2_beacon_block_execution_payload_bid = 216 + [ json_name = "BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID" ]; + + // EIP-7732 ePBS: P2P gossip events + xatu.eth.v1.SignedExecutionPayloadEnvelope libp2p_trace_gossipsub_execution_payload_envelope = 217 + [ json_name = "LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_ENVELOPE" ]; + xatu.eth.v1.SignedExecutionPayloadBid libp2p_trace_gossipsub_execution_payload_bid = 218 + [ json_name = "LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_BID" ]; + xatu.eth.v1.PayloadAttestationMessage libp2p_trace_gossipsub_payload_attestation_message = 219 + [ json_name = "LIBP2P_TRACE_GOSSIPSUB_PAYLOAD_ATTESTATION_MESSAGE" ]; + xatu.eth.v1.SignedProposerPreferences libp2p_trace_gossipsub_proposer_preferences = 220 + [ json_name = "LIBP2P_TRACE_GOSSIPSUB_PROPOSER_PREFERENCES" ]; }; } From 44caab8c84910b3d09fb1c3d3070e256412cfaeb Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Thu, 26 Mar 2026 13:01:31 +1000 Subject: [PATCH 16/23] feat(migrations): add support for EIP-7732 ePBS and Gloas columns in ClickHouse tables to improve data structure for valid bid tracking and payload attestation flow feat(migrations): create various new tables for tracking execution payloads, bids, and proposer preferences to enhance transaction handling and performance fix(migrations): reverse EIP-7732 changes in down scripts to ensure consistent rollback functionality and data integrity --- ...wn.sql => 106_gloas_bals_support.down.sql} | 0 ...t.up.sql => 106_gloas_bals_support.up.sql} | 0 .../107_gloas_epbs_support.down.sql | 74 +++ .../clickhouse/107_gloas_epbs_support.up.sql | 592 ++++++++++++++++++ 4 files changed, 666 insertions(+) rename deploy/migrations/clickhouse/{106_gloas_support.down.sql => 106_gloas_bals_support.down.sql} (100%) rename deploy/migrations/clickhouse/{106_gloas_support.up.sql => 106_gloas_bals_support.up.sql} (100%) create mode 100644 deploy/migrations/clickhouse/107_gloas_epbs_support.down.sql create mode 100644 deploy/migrations/clickhouse/107_gloas_epbs_support.up.sql diff --git a/deploy/migrations/clickhouse/106_gloas_support.down.sql b/deploy/migrations/clickhouse/106_gloas_bals_support.down.sql similarity index 100% rename from deploy/migrations/clickhouse/106_gloas_support.down.sql rename to deploy/migrations/clickhouse/106_gloas_bals_support.down.sql diff --git a/deploy/migrations/clickhouse/106_gloas_support.up.sql b/deploy/migrations/clickhouse/106_gloas_bals_support.up.sql similarity index 100% rename from deploy/migrations/clickhouse/106_gloas_support.up.sql rename to deploy/migrations/clickhouse/106_gloas_bals_support.up.sql diff --git a/deploy/migrations/clickhouse/107_gloas_epbs_support.down.sql b/deploy/migrations/clickhouse/107_gloas_epbs_support.down.sql new file mode 100644 index 000000000..e84b0fef7 --- /dev/null +++ b/deploy/migrations/clickhouse/107_gloas_epbs_support.down.sql @@ -0,0 +1,74 @@ +-- Reverse EIP-7732 ePBS support + +-- Drop new tables +DROP TABLE IF EXISTS default.canonical_beacon_block_payload_attestation ON CLUSTER '{cluster}'; +DROP TABLE IF EXISTS default.canonical_beacon_block_payload_attestation_local ON CLUSTER '{cluster}'; + +DROP TABLE IF EXISTS default.canonical_beacon_block_execution_payload_bid ON CLUSTER '{cluster}'; +DROP TABLE IF EXISTS default.canonical_beacon_block_execution_payload_bid_local ON CLUSTER '{cluster}'; + +DROP TABLE IF EXISTS default.beacon_api_eth_v1_events_execution_payload ON CLUSTER '{cluster}'; +DROP TABLE IF EXISTS default.beacon_api_eth_v1_events_execution_payload_local ON CLUSTER '{cluster}'; + +DROP TABLE IF EXISTS default.beacon_api_eth_v1_events_payload_attestation ON CLUSTER '{cluster}'; +DROP TABLE IF EXISTS default.beacon_api_eth_v1_events_payload_attestation_local ON CLUSTER '{cluster}'; + +DROP TABLE IF EXISTS default.beacon_api_eth_v1_events_execution_payload_bid ON CLUSTER '{cluster}'; +DROP TABLE IF EXISTS default.beacon_api_eth_v1_events_execution_payload_bid_local ON CLUSTER '{cluster}'; + +DROP TABLE IF EXISTS default.beacon_api_eth_v1_events_proposer_preferences ON CLUSTER '{cluster}'; +DROP TABLE IF EXISTS default.beacon_api_eth_v1_events_proposer_preferences_local ON CLUSTER '{cluster}'; + +DROP TABLE IF EXISTS default.libp2p_gossipsub_execution_payload_envelope ON CLUSTER '{cluster}'; +DROP TABLE IF EXISTS default.libp2p_gossipsub_execution_payload_envelope_local ON CLUSTER '{cluster}'; + +DROP TABLE IF EXISTS default.libp2p_gossipsub_execution_payload_bid ON CLUSTER '{cluster}'; +DROP TABLE IF EXISTS default.libp2p_gossipsub_execution_payload_bid_local ON CLUSTER '{cluster}'; + +DROP TABLE IF EXISTS default.libp2p_gossipsub_payload_attestation_message ON CLUSTER '{cluster}'; +DROP TABLE IF EXISTS default.libp2p_gossipsub_payload_attestation_message_local ON CLUSTER '{cluster}'; + +DROP TABLE IF EXISTS default.libp2p_gossipsub_proposer_preferences ON CLUSTER '{cluster}'; +DROP TABLE IF EXISTS default.libp2p_gossipsub_proposer_preferences_local ON CLUSTER '{cluster}'; + +-- Remove ePBS columns from beacon block tables +ALTER TABLE default.canonical_beacon_block ON CLUSTER '{cluster}' + DROP COLUMN IF EXISTS payload_present, + DROP COLUMN IF EXISTS execution_payment, + DROP COLUMN IF EXISTS bid_value, + DROP COLUMN IF EXISTS builder_index; + +ALTER TABLE default.canonical_beacon_block_local ON CLUSTER '{cluster}' + DROP COLUMN IF EXISTS payload_present, + DROP COLUMN IF EXISTS execution_payment, + DROP COLUMN IF EXISTS bid_value, + DROP COLUMN IF EXISTS builder_index; + +ALTER TABLE default.beacon_api_eth_v2_beacon_block ON CLUSTER '{cluster}' + DROP COLUMN IF EXISTS payload_present, + DROP COLUMN IF EXISTS execution_payment, + DROP COLUMN IF EXISTS bid_value, + DROP COLUMN IF EXISTS builder_index; + +ALTER TABLE default.beacon_api_eth_v2_beacon_block_local ON CLUSTER '{cluster}' + DROP COLUMN IF EXISTS payload_present, + DROP COLUMN IF EXISTS execution_payment, + DROP COLUMN IF EXISTS bid_value, + DROP COLUMN IF EXISTS builder_index; + +-- Remove Gloas columns from DataColumnSidecar tables +ALTER TABLE default.beacon_api_eth_v1_events_data_column_sidecar ON CLUSTER '{cluster}' + DROP COLUMN IF EXISTS sidecar_beacon_block_root, + DROP COLUMN IF EXISTS sidecar_slot; + +ALTER TABLE default.beacon_api_eth_v1_events_data_column_sidecar_local ON CLUSTER '{cluster}' + DROP COLUMN IF EXISTS sidecar_beacon_block_root, + DROP COLUMN IF EXISTS sidecar_slot; + +ALTER TABLE default.libp2p_gossipsub_data_column_sidecar ON CLUSTER '{cluster}' + DROP COLUMN IF EXISTS sidecar_beacon_block_root, + DROP COLUMN IF EXISTS sidecar_slot; + +ALTER TABLE default.libp2p_gossipsub_data_column_sidecar_local ON CLUSTER '{cluster}' + DROP COLUMN IF EXISTS sidecar_beacon_block_root, + DROP COLUMN IF EXISTS sidecar_slot; diff --git a/deploy/migrations/clickhouse/107_gloas_epbs_support.up.sql b/deploy/migrations/clickhouse/107_gloas_epbs_support.up.sql new file mode 100644 index 000000000..c134b2137 --- /dev/null +++ b/deploy/migrations/clickhouse/107_gloas_epbs_support.up.sql @@ -0,0 +1,592 @@ +-- EIP-7732 ePBS support: new tables + column additions +-- 10 new tables: 2 cannon, 4 sentry SSE, 4 libp2p gossip. +-- Plus column additions to existing tables. + +--------------------------------------------------------------------- +-- 1. CANNON: canonical_beacon_block_payload_attestation +-- Aggregated PTC attestations from block body (max 4/block) +--------------------------------------------------------------------- +CREATE TABLE default.canonical_beacon_block_payload_attestation_local ON CLUSTER '{cluster}' ( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `slot` UInt32 COMMENT 'Slot number of the block containing this payload attestation' CODEC(DoubleDelta, ZSTD(1)), + `slot_start_date_time` DateTime COMMENT 'The wall clock time when the slot started' CODEC(DoubleDelta, ZSTD(1)), + `epoch` UInt32 COMMENT 'Epoch number' CODEC(DoubleDelta, ZSTD(1)), + `epoch_start_date_time` DateTime COMMENT 'The wall clock time when the epoch started' CODEC(DoubleDelta, ZSTD(1)), + `block_root` FixedString(66) COMMENT 'Root of the block containing this attestation' CODEC(ZSTD(1)), + `block_version` LowCardinality(String) COMMENT 'Block version (e.g. gloas)', + `position` UInt32 COMMENT 'Position of the payload attestation in the block body (0-3)' CODEC(DoubleDelta, ZSTD(1)), + `beacon_block_root` FixedString(66) COMMENT 'The block root being attested to by the PTC' CODEC(ZSTD(1)), + `payload_present` Bool COMMENT 'Whether the PTC attests payload was present' CODEC(ZSTD(1)), + `blob_data_available` Bool COMMENT 'Whether the PTC attests blob data was available' CODEC(ZSTD(1)), + `aggregation_bits` String COMMENT 'Bitvector of PTC members (512 bits) as hex' CODEC(ZSTD(1)), + `attesting_validator_count` UInt32 COMMENT 'Number of PTC validators in this aggregation' CODEC(DoubleDelta, ZSTD(1)), + `meta_client_name` LowCardinality(String) COMMENT 'Name of the client that generated the event', + `meta_client_id` String COMMENT 'Unique Session ID of the client' CODEC(ZSTD(1)), + `meta_client_version` LowCardinality(String) COMMENT 'Version of the client', + `meta_client_implementation` LowCardinality(String) COMMENT 'Implementation of the client', + `meta_client_os` LowCardinality(String) COMMENT 'Operating system of the client', + `meta_client_ip` Nullable(IPv6) COMMENT 'IP address of the client' CODEC(ZSTD(1)), + `meta_client_geo_city` LowCardinality(String) COMMENT 'City of the client' CODEC(ZSTD(1)), + `meta_client_geo_country` LowCardinality(String) COMMENT 'Country of the client' CODEC(ZSTD(1)), + `meta_client_geo_country_code` LowCardinality(String) COMMENT 'Country code of the client' CODEC(ZSTD(1)), + `meta_client_geo_continent_code` LowCardinality(String) COMMENT 'Continent code of the client' CODEC(ZSTD(1)), + `meta_client_geo_longitude` Nullable(Float64) COMMENT 'Longitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_latitude` Nullable(Float64) COMMENT 'Latitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_number` Nullable(UInt32) COMMENT 'ASN of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_organization` Nullable(String) COMMENT 'AS organization of the client' CODEC(ZSTD(1)), + `meta_network_id` Int32 COMMENT 'Ethereum network ID' CODEC(DoubleDelta, ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name', + `meta_consensus_version` LowCardinality(String) COMMENT 'Consensus client version', + `meta_consensus_version_major` LowCardinality(String) COMMENT 'Consensus client major version', + `meta_consensus_version_minor` LowCardinality(String) COMMENT 'Consensus client minor version', + `meta_consensus_version_patch` LowCardinality(String) COMMENT 'Consensus client patch version', + `meta_consensus_implementation` LowCardinality(String) COMMENT 'Consensus client implementation', + `meta_labels` Map(String, String) COMMENT 'Labels associated with the event' CODEC(ZSTD(1)) +) ENGINE = ReplicatedReplacingMergeTree( + '/clickhouse/{installation}/{cluster}/{database}/tables/{table}/{shard}', + '{replica}', + updated_date_time +) PARTITION BY toStartOfMonth(slot_start_date_time) +ORDER BY (slot_start_date_time, meta_network_name, block_root, position) +COMMENT 'Aggregated PTC payload attestations from canonical beacon blocks (max 4 per block).'; + +CREATE TABLE default.canonical_beacon_block_payload_attestation ON CLUSTER '{cluster}' + AS default.canonical_beacon_block_payload_attestation_local + ENGINE = Distributed('{cluster}', default, canonical_beacon_block_payload_attestation_local, rand()); + +--------------------------------------------------------------------- +-- 2. CANNON: canonical_beacon_block_execution_payload_bid +-- Winning builder bid from each block (1 per block) +--------------------------------------------------------------------- +CREATE TABLE default.canonical_beacon_block_execution_payload_bid_local ON CLUSTER '{cluster}' ( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `slot` UInt32 COMMENT 'Slot number of the block containing this bid' CODEC(DoubleDelta, ZSTD(1)), + `slot_start_date_time` DateTime COMMENT 'The wall clock time when the slot started' CODEC(DoubleDelta, ZSTD(1)), + `epoch` UInt32 COMMENT 'Epoch number' CODEC(DoubleDelta, ZSTD(1)), + `epoch_start_date_time` DateTime COMMENT 'The wall clock time when the epoch started' CODEC(DoubleDelta, ZSTD(1)), + `block_root` FixedString(66) COMMENT 'Root of the block containing this bid' CODEC(ZSTD(1)), + `block_version` LowCardinality(String) COMMENT 'Block version (e.g. gloas)', + `builder_index` UInt64 COMMENT 'Index of the builder in the builder registry' CODEC(ZSTD(1)), + `block_hash` FixedString(66) COMMENT 'Execution block hash committed to in the bid' CODEC(ZSTD(1)), + `parent_block_hash` FixedString(66) COMMENT 'Parent execution block hash' CODEC(ZSTD(1)), + `parent_block_root` FixedString(66) COMMENT 'Parent beacon block root' CODEC(ZSTD(1)), + `value` UInt64 COMMENT 'Bid value in Gwei' CODEC(ZSTD(1)), + `execution_payment` UInt64 COMMENT 'Execution payment in Gwei' CODEC(ZSTD(1)), + `fee_recipient` FixedString(42) COMMENT 'Fee recipient address' CODEC(ZSTD(1)), + `gas_limit` UInt64 COMMENT 'Gas limit for the execution payload' CODEC(DoubleDelta, ZSTD(1)), + `prev_randao` FixedString(66) COMMENT 'Previous RANDAO value' CODEC(ZSTD(1)), + `blob_kzg_commitment_count` UInt32 COMMENT 'Number of blob KZG commitments' CODEC(DoubleDelta, ZSTD(1)), + `meta_client_name` LowCardinality(String) COMMENT 'Name of the client that generated the event', + `meta_client_id` String COMMENT 'Unique Session ID of the client' CODEC(ZSTD(1)), + `meta_client_version` LowCardinality(String) COMMENT 'Version of the client', + `meta_client_implementation` LowCardinality(String) COMMENT 'Implementation of the client', + `meta_client_os` LowCardinality(String) COMMENT 'Operating system of the client', + `meta_client_ip` Nullable(IPv6) COMMENT 'IP address of the client' CODEC(ZSTD(1)), + `meta_client_geo_city` LowCardinality(String) COMMENT 'City of the client' CODEC(ZSTD(1)), + `meta_client_geo_country` LowCardinality(String) COMMENT 'Country of the client' CODEC(ZSTD(1)), + `meta_client_geo_country_code` LowCardinality(String) COMMENT 'Country code of the client' CODEC(ZSTD(1)), + `meta_client_geo_continent_code` LowCardinality(String) COMMENT 'Continent code of the client' CODEC(ZSTD(1)), + `meta_client_geo_longitude` Nullable(Float64) COMMENT 'Longitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_latitude` Nullable(Float64) COMMENT 'Latitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_number` Nullable(UInt32) COMMENT 'ASN of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_organization` Nullable(String) COMMENT 'AS organization of the client' CODEC(ZSTD(1)), + `meta_network_id` Int32 COMMENT 'Ethereum network ID' CODEC(DoubleDelta, ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name', + `meta_consensus_version` LowCardinality(String) COMMENT 'Consensus client version', + `meta_consensus_version_major` LowCardinality(String) COMMENT 'Consensus client major version', + `meta_consensus_version_minor` LowCardinality(String) COMMENT 'Consensus client minor version', + `meta_consensus_version_patch` LowCardinality(String) COMMENT 'Consensus client patch version', + `meta_consensus_implementation` LowCardinality(String) COMMENT 'Consensus client implementation', + `meta_labels` Map(String, String) COMMENT 'Labels associated with the event' CODEC(ZSTD(1)) +) ENGINE = ReplicatedReplacingMergeTree( + '/clickhouse/{installation}/{cluster}/{database}/tables/{table}/{shard}', + '{replica}', + updated_date_time +) PARTITION BY toStartOfMonth(slot_start_date_time) +ORDER BY (slot_start_date_time, meta_network_name, block_root) +COMMENT 'Winning execution payload bid from canonical beacon blocks (1 per block).'; + +CREATE TABLE default.canonical_beacon_block_execution_payload_bid ON CLUSTER '{cluster}' + AS default.canonical_beacon_block_execution_payload_bid_local + ENGINE = Distributed('{cluster}', default, canonical_beacon_block_execution_payload_bid_local, rand()); + +--------------------------------------------------------------------- +-- 3. SENTRY SSE: beacon_api_eth_v1_events_execution_payload +-- Payload envelope arrival from beacon API SSE +--------------------------------------------------------------------- +CREATE TABLE default.beacon_api_eth_v1_events_execution_payload_local ON CLUSTER '{cluster}' ( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `event_date_time` DateTime64(3) COMMENT 'When the sentry received the event from a beacon node' CODEC(DoubleDelta, ZSTD(1)), + `slot` UInt32 COMMENT 'Slot number from the event payload' CODEC(DoubleDelta, ZSTD(1)), + `slot_start_date_time` DateTime COMMENT 'The wall clock time when the slot started' CODEC(DoubleDelta, ZSTD(1)), + `propagation_slot_start_diff` UInt32 COMMENT 'Difference between event_date_time and slot_start_date_time in ms' CODEC(ZSTD(1)), + `epoch` UInt32 COMMENT 'Epoch number' CODEC(DoubleDelta, ZSTD(1)), + `epoch_start_date_time` DateTime COMMENT 'The wall clock time when the epoch started' CODEC(DoubleDelta, ZSTD(1)), + `block_root` FixedString(66) COMMENT 'Beacon block root the envelope references' CODEC(ZSTD(1)), + `builder_index` UInt64 COMMENT 'Index of the builder that produced the payload' CODEC(ZSTD(1)), + `block_hash` FixedString(66) COMMENT 'Execution block hash' CODEC(ZSTD(1)), + `state_root` FixedString(66) COMMENT 'Execution state root' CODEC(ZSTD(1)), + `meta_client_name` LowCardinality(String) COMMENT 'Name of the client that generated the event', + `meta_client_id` String COMMENT 'Unique Session ID of the client' CODEC(ZSTD(1)), + `meta_client_version` LowCardinality(String) COMMENT 'Version of the client', + `meta_client_implementation` LowCardinality(String) COMMENT 'Implementation of the client', + `meta_client_os` LowCardinality(String) COMMENT 'Operating system of the client', + `meta_client_ip` Nullable(IPv6) COMMENT 'IP address of the client' CODEC(ZSTD(1)), + `meta_client_geo_city` LowCardinality(String) COMMENT 'City of the client' CODEC(ZSTD(1)), + `meta_client_geo_country` LowCardinality(String) COMMENT 'Country of the client' CODEC(ZSTD(1)), + `meta_client_geo_country_code` LowCardinality(String) COMMENT 'Country code of the client' CODEC(ZSTD(1)), + `meta_client_geo_continent_code` LowCardinality(String) COMMENT 'Continent code of the client' CODEC(ZSTD(1)), + `meta_client_geo_longitude` Nullable(Float64) COMMENT 'Longitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_latitude` Nullable(Float64) COMMENT 'Latitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_number` Nullable(UInt32) COMMENT 'ASN of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_organization` Nullable(String) COMMENT 'AS organization of the client' CODEC(ZSTD(1)), + `meta_network_id` Int32 COMMENT 'Ethereum network ID' CODEC(DoubleDelta, ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name', + `meta_consensus_version` LowCardinality(String) COMMENT 'Consensus client version', + `meta_consensus_version_major` LowCardinality(String) COMMENT 'Consensus client major version', + `meta_consensus_version_minor` LowCardinality(String) COMMENT 'Consensus client minor version', + `meta_consensus_version_patch` LowCardinality(String) COMMENT 'Consensus client patch version', + `meta_consensus_implementation` LowCardinality(String) COMMENT 'Consensus client implementation', + `meta_labels` Map(String, String) COMMENT 'Labels associated with the event' CODEC(ZSTD(1)) +) ENGINE = ReplicatedReplacingMergeTree( + '/clickhouse/{installation}/{cluster}/{database}/tables/{table}/{shard}', + '{replica}', + updated_date_time +) PARTITION BY toStartOfMonth(slot_start_date_time) +ORDER BY (slot_start_date_time, meta_network_name, meta_client_name, block_root) +COMMENT 'Execution payload envelope arrivals from beacon API SSE (execution_payload_available event).'; + +CREATE TABLE default.beacon_api_eth_v1_events_execution_payload ON CLUSTER '{cluster}' + AS default.beacon_api_eth_v1_events_execution_payload_local + ENGINE = Distributed('{cluster}', default, beacon_api_eth_v1_events_execution_payload_local, + cityHash64(slot_start_date_time, meta_network_name, meta_client_name, block_root)); + +--------------------------------------------------------------------- +-- 3b. SENTRY SSE: beacon_api_eth_v1_events_payload_attestation +-- Individual PTC attestation from beacon API SSE (~512/slot) +--------------------------------------------------------------------- +CREATE TABLE default.beacon_api_eth_v1_events_payload_attestation_local ON CLUSTER '{cluster}' ( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `event_date_time` DateTime64(3) COMMENT 'When the sentry received the event from a beacon node' CODEC(DoubleDelta, ZSTD(1)), + `slot` UInt32 COMMENT 'Slot number from the event payload' CODEC(DoubleDelta, ZSTD(1)), + `slot_start_date_time` DateTime COMMENT 'The wall clock time when the slot started' CODEC(DoubleDelta, ZSTD(1)), + `propagation_slot_start_diff` UInt32 COMMENT 'Difference between event_date_time and slot_start_date_time in ms' CODEC(ZSTD(1)), + `epoch` UInt32 COMMENT 'Epoch number' CODEC(DoubleDelta, ZSTD(1)), + `epoch_start_date_time` DateTime COMMENT 'The wall clock time when the epoch started' CODEC(DoubleDelta, ZSTD(1)), + `validator_index` UInt32 COMMENT 'Index of the PTC validator' CODEC(ZSTD(1)), + `beacon_block_root` FixedString(66) COMMENT 'Block root being attested to' CODEC(ZSTD(1)), + `payload_present` Bool COMMENT 'Whether the validator attests payload was present' CODEC(ZSTD(1)), + `blob_data_available` Bool COMMENT 'Whether the validator attests blob data was available' CODEC(ZSTD(1)), + `meta_client_name` LowCardinality(String) COMMENT 'Name of the client that generated the event', + `meta_client_id` String COMMENT 'Unique Session ID of the client' CODEC(ZSTD(1)), + `meta_client_version` LowCardinality(String) COMMENT 'Version of the client', + `meta_client_implementation` LowCardinality(String) COMMENT 'Implementation of the client', + `meta_client_os` LowCardinality(String) COMMENT 'Operating system of the client', + `meta_client_ip` Nullable(IPv6) COMMENT 'IP address of the client' CODEC(ZSTD(1)), + `meta_client_geo_city` LowCardinality(String) COMMENT 'City of the client' CODEC(ZSTD(1)), + `meta_client_geo_country` LowCardinality(String) COMMENT 'Country of the client' CODEC(ZSTD(1)), + `meta_client_geo_country_code` LowCardinality(String) COMMENT 'Country code of the client' CODEC(ZSTD(1)), + `meta_client_geo_continent_code` LowCardinality(String) COMMENT 'Continent code of the client' CODEC(ZSTD(1)), + `meta_client_geo_longitude` Nullable(Float64) COMMENT 'Longitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_latitude` Nullable(Float64) COMMENT 'Latitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_number` Nullable(UInt32) COMMENT 'ASN of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_organization` Nullable(String) COMMENT 'AS organization of the client' CODEC(ZSTD(1)), + `meta_network_id` Int32 COMMENT 'Ethereum network ID' CODEC(DoubleDelta, ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name', + `meta_consensus_version` LowCardinality(String) COMMENT 'Consensus client version', + `meta_consensus_version_major` LowCardinality(String) COMMENT 'Consensus client major version', + `meta_consensus_version_minor` LowCardinality(String) COMMENT 'Consensus client minor version', + `meta_consensus_version_patch` LowCardinality(String) COMMENT 'Consensus client patch version', + `meta_consensus_implementation` LowCardinality(String) COMMENT 'Consensus client implementation', + `meta_labels` Map(String, String) COMMENT 'Labels associated with the event' CODEC(ZSTD(1)) +) ENGINE = ReplicatedReplacingMergeTree( + '/clickhouse/{installation}/{cluster}/{database}/tables/{table}/{shard}', + '{replica}', + updated_date_time +) PARTITION BY toStartOfMonth(slot_start_date_time) +ORDER BY (slot_start_date_time, meta_network_name, meta_client_name, beacon_block_root, validator_index) +COMMENT 'Individual PTC payload attestation messages from beacon API SSE (payload_attestation_message event, ~512 per slot).'; + +CREATE TABLE default.beacon_api_eth_v1_events_payload_attestation ON CLUSTER '{cluster}' + AS default.beacon_api_eth_v1_events_payload_attestation_local + ENGINE = Distributed('{cluster}', default, beacon_api_eth_v1_events_payload_attestation_local, + cityHash64(slot_start_date_time, meta_network_name, meta_client_name, beacon_block_root, validator_index)); + +--------------------------------------------------------------------- +-- 3c. SENTRY SSE: beacon_api_eth_v1_events_execution_payload_bid +-- Builder bid from beacon API SSE +--------------------------------------------------------------------- +CREATE TABLE default.beacon_api_eth_v1_events_execution_payload_bid_local ON CLUSTER '{cluster}' ( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `event_date_time` DateTime64(3) COMMENT 'When the sentry received the event from a beacon node' CODEC(DoubleDelta, ZSTD(1)), + `slot` UInt32 COMMENT 'Slot number from the event payload' CODEC(DoubleDelta, ZSTD(1)), + `slot_start_date_time` DateTime COMMENT 'The wall clock time when the slot started' CODEC(DoubleDelta, ZSTD(1)), + `propagation_slot_start_diff` UInt32 COMMENT 'Difference between event_date_time and slot_start_date_time in ms' CODEC(ZSTD(1)), + `epoch` UInt32 COMMENT 'Epoch number' CODEC(DoubleDelta, ZSTD(1)), + `epoch_start_date_time` DateTime COMMENT 'The wall clock time when the epoch started' CODEC(DoubleDelta, ZSTD(1)), + `builder_index` UInt64 COMMENT 'Index of the builder' CODEC(ZSTD(1)), + `block_hash` FixedString(66) COMMENT 'Execution block hash committed to in the bid' CODEC(ZSTD(1)), + `parent_block_hash` FixedString(66) COMMENT 'Parent execution block hash' CODEC(ZSTD(1)), + `parent_block_root` FixedString(66) COMMENT 'Parent beacon block root' CODEC(ZSTD(1)), + `value` UInt64 COMMENT 'Bid value in Gwei' CODEC(ZSTD(1)), + `execution_payment` UInt64 COMMENT 'Execution payment in Gwei' CODEC(ZSTD(1)), + `fee_recipient` FixedString(42) COMMENT 'Fee recipient address' CODEC(ZSTD(1)), + `gas_limit` UInt64 COMMENT 'Gas limit' CODEC(DoubleDelta, ZSTD(1)), + `blob_kzg_commitment_count` UInt32 COMMENT 'Number of blob KZG commitments' CODEC(DoubleDelta, ZSTD(1)), + `meta_client_name` LowCardinality(String) COMMENT 'Name of the client that generated the event', + `meta_client_id` String COMMENT 'Unique Session ID of the client' CODEC(ZSTD(1)), + `meta_client_version` LowCardinality(String) COMMENT 'Version of the client', + `meta_client_implementation` LowCardinality(String) COMMENT 'Implementation of the client', + `meta_client_os` LowCardinality(String) COMMENT 'Operating system of the client', + `meta_client_ip` Nullable(IPv6) COMMENT 'IP address of the client' CODEC(ZSTD(1)), + `meta_client_geo_city` LowCardinality(String) COMMENT 'City of the client' CODEC(ZSTD(1)), + `meta_client_geo_country` LowCardinality(String) COMMENT 'Country of the client' CODEC(ZSTD(1)), + `meta_client_geo_country_code` LowCardinality(String) COMMENT 'Country code of the client' CODEC(ZSTD(1)), + `meta_client_geo_continent_code` LowCardinality(String) COMMENT 'Continent code of the client' CODEC(ZSTD(1)), + `meta_client_geo_longitude` Nullable(Float64) COMMENT 'Longitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_latitude` Nullable(Float64) COMMENT 'Latitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_number` Nullable(UInt32) COMMENT 'ASN of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_organization` Nullable(String) COMMENT 'AS organization of the client' CODEC(ZSTD(1)), + `meta_network_id` Int32 COMMENT 'Ethereum network ID' CODEC(DoubleDelta, ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name', + `meta_consensus_version` LowCardinality(String) COMMENT 'Consensus client version', + `meta_consensus_version_major` LowCardinality(String) COMMENT 'Consensus client major version', + `meta_consensus_version_minor` LowCardinality(String) COMMENT 'Consensus client minor version', + `meta_consensus_version_patch` LowCardinality(String) COMMENT 'Consensus client patch version', + `meta_consensus_implementation` LowCardinality(String) COMMENT 'Consensus client implementation', + `meta_labels` Map(String, String) COMMENT 'Labels associated with the event' CODEC(ZSTD(1)) +) ENGINE = ReplicatedReplacingMergeTree( + '/clickhouse/{installation}/{cluster}/{database}/tables/{table}/{shard}', + '{replica}', + updated_date_time +) PARTITION BY toStartOfMonth(slot_start_date_time) +ORDER BY (slot_start_date_time, meta_network_name, meta_client_name, block_hash) +COMMENT 'Builder bids from beacon API SSE (execution_payload_bid event).'; + +CREATE TABLE default.beacon_api_eth_v1_events_execution_payload_bid ON CLUSTER '{cluster}' + AS default.beacon_api_eth_v1_events_execution_payload_bid_local + ENGINE = Distributed('{cluster}', default, beacon_api_eth_v1_events_execution_payload_bid_local, + cityHash64(slot_start_date_time, meta_network_name, meta_client_name, block_hash)); + +--------------------------------------------------------------------- +-- 3d. SENTRY SSE: beacon_api_eth_v1_events_proposer_preferences +-- Proposer preferences from beacon API SSE +--------------------------------------------------------------------- +CREATE TABLE default.beacon_api_eth_v1_events_proposer_preferences_local ON CLUSTER '{cluster}' ( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `event_date_time` DateTime64(3) COMMENT 'When the sentry received the event from a beacon node' CODEC(DoubleDelta, ZSTD(1)), + `slot` UInt32 COMMENT 'Proposal slot' CODEC(DoubleDelta, ZSTD(1)), + `slot_start_date_time` DateTime COMMENT 'The wall clock time when the slot started' CODEC(DoubleDelta, ZSTD(1)), + `propagation_slot_start_diff` UInt32 COMMENT 'Difference between event_date_time and slot_start_date_time in ms' CODEC(ZSTD(1)), + `epoch` UInt32 COMMENT 'Epoch number' CODEC(DoubleDelta, ZSTD(1)), + `epoch_start_date_time` DateTime COMMENT 'The wall clock time when the epoch started' CODEC(DoubleDelta, ZSTD(1)), + `validator_index` UInt32 COMMENT 'Index of the proposing validator' CODEC(ZSTD(1)), + `fee_recipient` FixedString(42) COMMENT 'Preferred fee recipient address' CODEC(ZSTD(1)), + `gas_limit` UInt64 COMMENT 'Preferred gas limit' CODEC(DoubleDelta, ZSTD(1)), + `meta_client_name` LowCardinality(String) COMMENT 'Name of the client that generated the event', + `meta_client_id` String COMMENT 'Unique Session ID of the client' CODEC(ZSTD(1)), + `meta_client_version` LowCardinality(String) COMMENT 'Version of the client', + `meta_client_implementation` LowCardinality(String) COMMENT 'Implementation of the client', + `meta_client_os` LowCardinality(String) COMMENT 'Operating system of the client', + `meta_client_ip` Nullable(IPv6) COMMENT 'IP address of the client' CODEC(ZSTD(1)), + `meta_client_geo_city` LowCardinality(String) COMMENT 'City of the client' CODEC(ZSTD(1)), + `meta_client_geo_country` LowCardinality(String) COMMENT 'Country of the client' CODEC(ZSTD(1)), + `meta_client_geo_country_code` LowCardinality(String) COMMENT 'Country code of the client' CODEC(ZSTD(1)), + `meta_client_geo_continent_code` LowCardinality(String) COMMENT 'Continent code of the client' CODEC(ZSTD(1)), + `meta_client_geo_longitude` Nullable(Float64) COMMENT 'Longitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_latitude` Nullable(Float64) COMMENT 'Latitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_number` Nullable(UInt32) COMMENT 'ASN of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_organization` Nullable(String) COMMENT 'AS organization of the client' CODEC(ZSTD(1)), + `meta_network_id` Int32 COMMENT 'Ethereum network ID' CODEC(DoubleDelta, ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name', + `meta_consensus_version` LowCardinality(String) COMMENT 'Consensus client version', + `meta_consensus_version_major` LowCardinality(String) COMMENT 'Consensus client major version', + `meta_consensus_version_minor` LowCardinality(String) COMMENT 'Consensus client minor version', + `meta_consensus_version_patch` LowCardinality(String) COMMENT 'Consensus client patch version', + `meta_consensus_implementation` LowCardinality(String) COMMENT 'Consensus client implementation', + `meta_labels` Map(String, String) COMMENT 'Labels associated with the event' CODEC(ZSTD(1)) +) ENGINE = ReplicatedReplacingMergeTree( + '/clickhouse/{installation}/{cluster}/{database}/tables/{table}/{shard}', + '{replica}', + updated_date_time +) PARTITION BY toStartOfMonth(slot_start_date_time) +ORDER BY (slot_start_date_time, meta_network_name, meta_client_name, validator_index) +COMMENT 'Proposer preferences from beacon API SSE (proposer_preferences event).'; + +CREATE TABLE default.beacon_api_eth_v1_events_proposer_preferences ON CLUSTER '{cluster}' + AS default.beacon_api_eth_v1_events_proposer_preferences_local + ENGINE = Distributed('{cluster}', default, beacon_api_eth_v1_events_proposer_preferences_local, + cityHash64(slot_start_date_time, meta_network_name, meta_client_name, validator_index)); + +--------------------------------------------------------------------- +-- 4. LIBP2P: libp2p_gossipsub_execution_payload_envelope +--------------------------------------------------------------------- +CREATE TABLE default.libp2p_gossipsub_execution_payload_envelope_local ON CLUSTER '{cluster}' ( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `version` UInt32 DEFAULT 4294967295 - propagation_slot_start_diff COMMENT 'Version for dedup: prefer lowest propagation time' CODEC(DoubleDelta, ZSTD(1)), + `event_date_time` DateTime64(3) COMMENT 'Timestamp of the event with millisecond precision' CODEC(DoubleDelta, ZSTD(1)), + `slot` UInt32 COMMENT 'Slot number' CODEC(DoubleDelta, ZSTD(1)), + `slot_start_date_time` DateTime COMMENT 'Start date and time of the slot' CODEC(DoubleDelta, ZSTD(1)), + `epoch` UInt32 COMMENT 'Epoch number' CODEC(DoubleDelta, ZSTD(1)), + `epoch_start_date_time` DateTime COMMENT 'Start date and time of the epoch' CODEC(DoubleDelta, ZSTD(1)), + `wallclock_slot` UInt32 COMMENT 'Wall clock slot when the event was received' CODEC(DoubleDelta, ZSTD(1)), + `wallclock_slot_start_date_time` DateTime COMMENT 'Start time of the wall clock slot' CODEC(DoubleDelta, ZSTD(1)), + `wallclock_epoch` UInt32 COMMENT 'Wall clock epoch when the event was received' CODEC(DoubleDelta, ZSTD(1)), + `wallclock_epoch_start_date_time` DateTime COMMENT 'Start time of the wall clock epoch' CODEC(DoubleDelta, ZSTD(1)), + `propagation_slot_start_diff` UInt32 COMMENT 'Propagation delay from slot start in ms' CODEC(ZSTD(1)), + `block_root` FixedString(66) COMMENT 'Beacon block root the envelope references' CODEC(ZSTD(1)), + `builder_index` UInt64 COMMENT 'Index of the builder that produced the payload' CODEC(ZSTD(1)), + `block_hash` FixedString(66) COMMENT 'Execution block hash' CODEC(ZSTD(1)), + `peer_id_unique_key` Int64 COMMENT 'Unique key for the peer identifier', + `message_id` String COMMENT 'Identifier of the gossip message' CODEC(ZSTD(1)), + `message_size` UInt32 COMMENT 'Size of the message in bytes' CODEC(ZSTD(1)), + `topic_layer` LowCardinality(String) COMMENT 'Layer of the gossipsub topic', + `topic_fork_digest_value` LowCardinality(String) COMMENT 'Fork digest value of the topic', + `topic_name` LowCardinality(String) COMMENT 'Name of the topic', + `topic_encoding` LowCardinality(String) COMMENT 'Encoding used for the topic', + `meta_client_name` LowCardinality(String) COMMENT 'Name of the client that generated the event', + `meta_client_id` String COMMENT 'Unique Session ID of the client' CODEC(ZSTD(1)), + `meta_client_version` LowCardinality(String) COMMENT 'Version of the client', + `meta_client_implementation` LowCardinality(String) COMMENT 'Implementation of the client', + `meta_client_os` LowCardinality(String) COMMENT 'Operating system of the client', + `meta_client_ip` Nullable(IPv6) COMMENT 'IP address of the client' CODEC(ZSTD(1)), + `meta_client_geo_city` LowCardinality(String) COMMENT 'City of the client' CODEC(ZSTD(1)), + `meta_client_geo_country` LowCardinality(String) COMMENT 'Country of the client' CODEC(ZSTD(1)), + `meta_client_geo_country_code` LowCardinality(String) COMMENT 'Country code of the client' CODEC(ZSTD(1)), + `meta_client_geo_continent_code` LowCardinality(String) COMMENT 'Continent code of the client' CODEC(ZSTD(1)), + `meta_client_geo_longitude` Nullable(Float64) COMMENT 'Longitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_latitude` Nullable(Float64) COMMENT 'Latitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_number` Nullable(UInt32) COMMENT 'ASN of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_organization` Nullable(String) COMMENT 'AS organization of the client' CODEC(ZSTD(1)), + `meta_network_id` Int32 COMMENT 'Ethereum network ID' CODEC(DoubleDelta, ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) ENGINE = ReplicatedReplacingMergeTree( + '/clickhouse/{installation}/{cluster}/{database}/tables/{table}/{shard}', + '{replica}', + updated_date_time +) PARTITION BY toYYYYMM(slot_start_date_time) +ORDER BY (slot_start_date_time, meta_network_name, meta_client_name, peer_id_unique_key, message_id) +COMMENT 'Execution payload envelope gossip propagation from libp2p.'; + +CREATE TABLE default.libp2p_gossipsub_execution_payload_envelope ON CLUSTER '{cluster}' + AS default.libp2p_gossipsub_execution_payload_envelope_local + ENGINE = Distributed('{cluster}', default, libp2p_gossipsub_execution_payload_envelope_local, + cityHash64(slot_start_date_time, meta_network_name, meta_client_name, peer_id_unique_key, message_id)); + +--------------------------------------------------------------------- +-- 5. LIBP2P: libp2p_gossipsub_execution_payload_bid +--------------------------------------------------------------------- +CREATE TABLE default.libp2p_gossipsub_execution_payload_bid_local ON CLUSTER '{cluster}' ( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `version` UInt32 DEFAULT 4294967295 - propagation_slot_start_diff COMMENT 'Version for dedup: prefer lowest propagation time' CODEC(DoubleDelta, ZSTD(1)), + `event_date_time` DateTime64(3) COMMENT 'Timestamp of the event with millisecond precision' CODEC(DoubleDelta, ZSTD(1)), + `slot` UInt32 COMMENT 'Slot number' CODEC(DoubleDelta, ZSTD(1)), + `slot_start_date_time` DateTime COMMENT 'Start date and time of the slot' CODEC(DoubleDelta, ZSTD(1)), + `epoch` UInt32 COMMENT 'Epoch number' CODEC(DoubleDelta, ZSTD(1)), + `epoch_start_date_time` DateTime COMMENT 'Start date and time of the epoch' CODEC(DoubleDelta, ZSTD(1)), + `wallclock_slot` UInt32 COMMENT 'Wall clock slot when the event was received' CODEC(DoubleDelta, ZSTD(1)), + `wallclock_slot_start_date_time` DateTime COMMENT 'Start time of the wall clock slot' CODEC(DoubleDelta, ZSTD(1)), + `wallclock_epoch` UInt32 COMMENT 'Wall clock epoch when the event was received' CODEC(DoubleDelta, ZSTD(1)), + `wallclock_epoch_start_date_time` DateTime COMMENT 'Start time of the wall clock epoch' CODEC(DoubleDelta, ZSTD(1)), + `propagation_slot_start_diff` UInt32 COMMENT 'Propagation delay from slot start in ms' CODEC(ZSTD(1)), + `builder_index` UInt64 COMMENT 'Index of the builder' CODEC(ZSTD(1)), + `block_hash` FixedString(66) COMMENT 'Execution block hash committed to in the bid' CODEC(ZSTD(1)), + `parent_block_hash` FixedString(66) COMMENT 'Parent execution block hash' CODEC(ZSTD(1)), + `value` UInt64 COMMENT 'Bid value in Gwei' CODEC(ZSTD(1)), + `execution_payment` UInt64 COMMENT 'Execution payment in Gwei' CODEC(ZSTD(1)), + `fee_recipient` FixedString(42) COMMENT 'Fee recipient address' CODEC(ZSTD(1)), + `gas_limit` UInt64 COMMENT 'Gas limit' CODEC(DoubleDelta, ZSTD(1)), + `blob_kzg_commitment_count` UInt32 COMMENT 'Number of blob KZG commitments' CODEC(DoubleDelta, ZSTD(1)), + `peer_id_unique_key` Int64 COMMENT 'Unique key for the peer identifier', + `message_id` String COMMENT 'Identifier of the gossip message' CODEC(ZSTD(1)), + `message_size` UInt32 COMMENT 'Size of the message in bytes' CODEC(ZSTD(1)), + `topic_layer` LowCardinality(String) COMMENT 'Layer of the gossipsub topic', + `topic_fork_digest_value` LowCardinality(String) COMMENT 'Fork digest value of the topic', + `topic_name` LowCardinality(String) COMMENT 'Name of the topic', + `topic_encoding` LowCardinality(String) COMMENT 'Encoding used for the topic', + `meta_client_name` LowCardinality(String) COMMENT 'Name of the client that generated the event', + `meta_client_id` String COMMENT 'Unique Session ID of the client' CODEC(ZSTD(1)), + `meta_client_version` LowCardinality(String) COMMENT 'Version of the client', + `meta_client_implementation` LowCardinality(String) COMMENT 'Implementation of the client', + `meta_client_os` LowCardinality(String) COMMENT 'Operating system of the client', + `meta_client_ip` Nullable(IPv6) COMMENT 'IP address of the client' CODEC(ZSTD(1)), + `meta_client_geo_city` LowCardinality(String) COMMENT 'City of the client' CODEC(ZSTD(1)), + `meta_client_geo_country` LowCardinality(String) COMMENT 'Country of the client' CODEC(ZSTD(1)), + `meta_client_geo_country_code` LowCardinality(String) COMMENT 'Country code of the client' CODEC(ZSTD(1)), + `meta_client_geo_continent_code` LowCardinality(String) COMMENT 'Continent code of the client' CODEC(ZSTD(1)), + `meta_client_geo_longitude` Nullable(Float64) COMMENT 'Longitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_latitude` Nullable(Float64) COMMENT 'Latitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_number` Nullable(UInt32) COMMENT 'ASN of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_organization` Nullable(String) COMMENT 'AS organization of the client' CODEC(ZSTD(1)), + `meta_network_id` Int32 COMMENT 'Ethereum network ID' CODEC(DoubleDelta, ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) ENGINE = ReplicatedReplacingMergeTree( + '/clickhouse/{installation}/{cluster}/{database}/tables/{table}/{shard}', + '{replica}', + updated_date_time +) PARTITION BY toYYYYMM(slot_start_date_time) +ORDER BY (slot_start_date_time, meta_network_name, meta_client_name, peer_id_unique_key, message_id) +COMMENT 'Builder bid gossip propagation from libp2p.'; + +CREATE TABLE default.libp2p_gossipsub_execution_payload_bid ON CLUSTER '{cluster}' + AS default.libp2p_gossipsub_execution_payload_bid_local + ENGINE = Distributed('{cluster}', default, libp2p_gossipsub_execution_payload_bid_local, + cityHash64(slot_start_date_time, meta_network_name, meta_client_name, peer_id_unique_key, message_id)); + +--------------------------------------------------------------------- +-- 6. LIBP2P: libp2p_gossipsub_payload_attestation_message +-- ~512 per slot, high volume +--------------------------------------------------------------------- +CREATE TABLE default.libp2p_gossipsub_payload_attestation_message_local ON CLUSTER '{cluster}' ( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `version` UInt32 DEFAULT 4294967295 - propagation_slot_start_diff COMMENT 'Version for dedup: prefer lowest propagation time' CODEC(DoubleDelta, ZSTD(1)), + `event_date_time` DateTime64(3) COMMENT 'Timestamp of the event with millisecond precision' CODEC(DoubleDelta, ZSTD(1)), + `slot` UInt32 COMMENT 'Slot number' CODEC(DoubleDelta, ZSTD(1)), + `slot_start_date_time` DateTime COMMENT 'Start date and time of the slot' CODEC(DoubleDelta, ZSTD(1)), + `epoch` UInt32 COMMENT 'Epoch number' CODEC(DoubleDelta, ZSTD(1)), + `epoch_start_date_time` DateTime COMMENT 'Start date and time of the epoch' CODEC(DoubleDelta, ZSTD(1)), + `wallclock_slot` UInt32 COMMENT 'Wall clock slot when the event was received' CODEC(DoubleDelta, ZSTD(1)), + `wallclock_slot_start_date_time` DateTime COMMENT 'Start time of the wall clock slot' CODEC(DoubleDelta, ZSTD(1)), + `wallclock_epoch` UInt32 COMMENT 'Wall clock epoch when the event was received' CODEC(DoubleDelta, ZSTD(1)), + `wallclock_epoch_start_date_time` DateTime COMMENT 'Start time of the wall clock epoch' CODEC(DoubleDelta, ZSTD(1)), + `propagation_slot_start_diff` UInt32 COMMENT 'Propagation delay from slot start in ms' CODEC(ZSTD(1)), + `validator_index` UInt32 COMMENT 'Index of the PTC validator' CODEC(ZSTD(1)), + `beacon_block_root` FixedString(66) COMMENT 'Block root being attested to' CODEC(ZSTD(1)), + `payload_present` Bool COMMENT 'Whether the validator attests payload was present' CODEC(ZSTD(1)), + `blob_data_available` Bool COMMENT 'Whether the validator attests blob data was available' CODEC(ZSTD(1)), + `peer_id_unique_key` Int64 COMMENT 'Unique key for the peer identifier', + `message_id` String COMMENT 'Identifier of the gossip message' CODEC(ZSTD(1)), + `message_size` UInt32 COMMENT 'Size of the message in bytes' CODEC(ZSTD(1)), + `topic_layer` LowCardinality(String) COMMENT 'Layer of the gossipsub topic', + `topic_fork_digest_value` LowCardinality(String) COMMENT 'Fork digest value of the topic', + `topic_name` LowCardinality(String) COMMENT 'Name of the topic', + `topic_encoding` LowCardinality(String) COMMENT 'Encoding used for the topic', + `meta_client_name` LowCardinality(String) COMMENT 'Name of the client that generated the event', + `meta_client_id` String COMMENT 'Unique Session ID of the client' CODEC(ZSTD(1)), + `meta_client_version` LowCardinality(String) COMMENT 'Version of the client', + `meta_client_implementation` LowCardinality(String) COMMENT 'Implementation of the client', + `meta_client_os` LowCardinality(String) COMMENT 'Operating system of the client', + `meta_client_ip` Nullable(IPv6) COMMENT 'IP address of the client' CODEC(ZSTD(1)), + `meta_client_geo_city` LowCardinality(String) COMMENT 'City of the client' CODEC(ZSTD(1)), + `meta_client_geo_country` LowCardinality(String) COMMENT 'Country of the client' CODEC(ZSTD(1)), + `meta_client_geo_country_code` LowCardinality(String) COMMENT 'Country code of the client' CODEC(ZSTD(1)), + `meta_client_geo_continent_code` LowCardinality(String) COMMENT 'Continent code of the client' CODEC(ZSTD(1)), + `meta_client_geo_longitude` Nullable(Float64) COMMENT 'Longitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_latitude` Nullable(Float64) COMMENT 'Latitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_number` Nullable(UInt32) COMMENT 'ASN of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_organization` Nullable(String) COMMENT 'AS organization of the client' CODEC(ZSTD(1)), + `meta_network_id` Int32 COMMENT 'Ethereum network ID' CODEC(DoubleDelta, ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) ENGINE = ReplicatedReplacingMergeTree( + '/clickhouse/{installation}/{cluster}/{database}/tables/{table}/{shard}', + '{replica}', + updated_date_time +) PARTITION BY toYYYYMM(slot_start_date_time) +ORDER BY (slot_start_date_time, meta_network_name, meta_client_name, peer_id_unique_key, message_id) +COMMENT 'Individual PTC payload attestation messages from libp2p gossip (~512 per slot).'; + +CREATE TABLE default.libp2p_gossipsub_payload_attestation_message ON CLUSTER '{cluster}' + AS default.libp2p_gossipsub_payload_attestation_message_local + ENGINE = Distributed('{cluster}', default, libp2p_gossipsub_payload_attestation_message_local, + cityHash64(slot_start_date_time, meta_network_name, meta_client_name, peer_id_unique_key, message_id)); + +--------------------------------------------------------------------- +-- 7. LIBP2P: libp2p_gossipsub_proposer_preferences +--------------------------------------------------------------------- +CREATE TABLE default.libp2p_gossipsub_proposer_preferences_local ON CLUSTER '{cluster}' ( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `version` UInt32 DEFAULT 4294967295 - propagation_slot_start_diff COMMENT 'Version for dedup: prefer lowest propagation time' CODEC(DoubleDelta, ZSTD(1)), + `event_date_time` DateTime64(3) COMMENT 'Timestamp of the event with millisecond precision' CODEC(DoubleDelta, ZSTD(1)), + `slot` UInt32 COMMENT 'Proposal slot' CODEC(DoubleDelta, ZSTD(1)), + `slot_start_date_time` DateTime COMMENT 'Start date and time of the slot' CODEC(DoubleDelta, ZSTD(1)), + `epoch` UInt32 COMMENT 'Epoch number' CODEC(DoubleDelta, ZSTD(1)), + `epoch_start_date_time` DateTime COMMENT 'Start date and time of the epoch' CODEC(DoubleDelta, ZSTD(1)), + `wallclock_slot` UInt32 COMMENT 'Wall clock slot when the event was received' CODEC(DoubleDelta, ZSTD(1)), + `wallclock_slot_start_date_time` DateTime COMMENT 'Start time of the wall clock slot' CODEC(DoubleDelta, ZSTD(1)), + `wallclock_epoch` UInt32 COMMENT 'Wall clock epoch when the event was received' CODEC(DoubleDelta, ZSTD(1)), + `wallclock_epoch_start_date_time` DateTime COMMENT 'Start time of the wall clock epoch' CODEC(DoubleDelta, ZSTD(1)), + `propagation_slot_start_diff` UInt32 COMMENT 'Propagation delay from slot start in ms' CODEC(ZSTD(1)), + `validator_index` UInt32 COMMENT 'Index of the proposing validator' CODEC(ZSTD(1)), + `fee_recipient` FixedString(42) COMMENT 'Preferred fee recipient address' CODEC(ZSTD(1)), + `gas_limit` UInt64 COMMENT 'Preferred gas limit' CODEC(DoubleDelta, ZSTD(1)), + `peer_id_unique_key` Int64 COMMENT 'Unique key for the peer identifier', + `message_id` String COMMENT 'Identifier of the gossip message' CODEC(ZSTD(1)), + `message_size` UInt32 COMMENT 'Size of the message in bytes' CODEC(ZSTD(1)), + `topic_layer` LowCardinality(String) COMMENT 'Layer of the gossipsub topic', + `topic_fork_digest_value` LowCardinality(String) COMMENT 'Fork digest value of the topic', + `topic_name` LowCardinality(String) COMMENT 'Name of the topic', + `topic_encoding` LowCardinality(String) COMMENT 'Encoding used for the topic', + `meta_client_name` LowCardinality(String) COMMENT 'Name of the client that generated the event', + `meta_client_id` String COMMENT 'Unique Session ID of the client' CODEC(ZSTD(1)), + `meta_client_version` LowCardinality(String) COMMENT 'Version of the client', + `meta_client_implementation` LowCardinality(String) COMMENT 'Implementation of the client', + `meta_client_os` LowCardinality(String) COMMENT 'Operating system of the client', + `meta_client_ip` Nullable(IPv6) COMMENT 'IP address of the client' CODEC(ZSTD(1)), + `meta_client_geo_city` LowCardinality(String) COMMENT 'City of the client' CODEC(ZSTD(1)), + `meta_client_geo_country` LowCardinality(String) COMMENT 'Country of the client' CODEC(ZSTD(1)), + `meta_client_geo_country_code` LowCardinality(String) COMMENT 'Country code of the client' CODEC(ZSTD(1)), + `meta_client_geo_continent_code` LowCardinality(String) COMMENT 'Continent code of the client' CODEC(ZSTD(1)), + `meta_client_geo_longitude` Nullable(Float64) COMMENT 'Longitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_latitude` Nullable(Float64) COMMENT 'Latitude of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_number` Nullable(UInt32) COMMENT 'ASN of the client' CODEC(ZSTD(1)), + `meta_client_geo_autonomous_system_organization` Nullable(String) COMMENT 'AS organization of the client' CODEC(ZSTD(1)), + `meta_network_id` Int32 COMMENT 'Ethereum network ID' CODEC(DoubleDelta, ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) ENGINE = ReplicatedReplacingMergeTree( + '/clickhouse/{installation}/{cluster}/{database}/tables/{table}/{shard}', + '{replica}', + updated_date_time +) PARTITION BY toYYYYMM(slot_start_date_time) +ORDER BY (slot_start_date_time, meta_network_name, meta_client_name, peer_id_unique_key, message_id) +COMMENT 'Proposer preferences gossip propagation from libp2p.'; + +CREATE TABLE default.libp2p_gossipsub_proposer_preferences ON CLUSTER '{cluster}' + AS default.libp2p_gossipsub_proposer_preferences_local + ENGINE = Distributed('{cluster}', default, libp2p_gossipsub_proposer_preferences_local, + cityHash64(slot_start_date_time, meta_network_name, meta_client_name, peer_id_unique_key, message_id)); + +--------------------------------------------------------------------- +-- 8. ALTER: Add ePBS columns to beacon block tables +--------------------------------------------------------------------- +ALTER TABLE default.canonical_beacon_block_local ON CLUSTER '{cluster}' + ADD COLUMN IF NOT EXISTS `builder_index` Nullable(UInt64) COMMENT 'Builder index from the bid (Gloas+)' CODEC(ZSTD(1)) AFTER execution_payload_block_access_list_root, + ADD COLUMN IF NOT EXISTS `bid_value` Nullable(UInt64) COMMENT 'Bid value in Gwei (Gloas+)' CODEC(ZSTD(1)) AFTER builder_index, + ADD COLUMN IF NOT EXISTS `execution_payment` Nullable(UInt64) COMMENT 'Execution payment in Gwei (Gloas+)' CODEC(ZSTD(1)) AFTER bid_value, + ADD COLUMN IF NOT EXISTS `payload_present` Nullable(Bool) COMMENT 'Whether execution payload was delivered (Gloas+)' CODEC(ZSTD(1)) AFTER execution_payment; + +ALTER TABLE default.canonical_beacon_block ON CLUSTER '{cluster}' + ADD COLUMN IF NOT EXISTS `builder_index` Nullable(UInt64) COMMENT 'Builder index from the bid (Gloas+)' CODEC(ZSTD(1)) AFTER execution_payload_block_access_list_root, + ADD COLUMN IF NOT EXISTS `bid_value` Nullable(UInt64) COMMENT 'Bid value in Gwei (Gloas+)' CODEC(ZSTD(1)) AFTER builder_index, + ADD COLUMN IF NOT EXISTS `execution_payment` Nullable(UInt64) COMMENT 'Execution payment in Gwei (Gloas+)' CODEC(ZSTD(1)) AFTER bid_value, + ADD COLUMN IF NOT EXISTS `payload_present` Nullable(Bool) COMMENT 'Whether execution payload was delivered (Gloas+)' CODEC(ZSTD(1)) AFTER execution_payment; + +ALTER TABLE default.beacon_api_eth_v2_beacon_block_local ON CLUSTER '{cluster}' + ADD COLUMN IF NOT EXISTS `builder_index` Nullable(UInt64) COMMENT 'Builder index from the bid (Gloas+)' CODEC(ZSTD(1)) AFTER execution_payload_slot_number, + ADD COLUMN IF NOT EXISTS `bid_value` Nullable(UInt64) COMMENT 'Bid value in Gwei (Gloas+)' CODEC(ZSTD(1)) AFTER builder_index, + ADD COLUMN IF NOT EXISTS `execution_payment` Nullable(UInt64) COMMENT 'Execution payment in Gwei (Gloas+)' CODEC(ZSTD(1)) AFTER bid_value, + ADD COLUMN IF NOT EXISTS `payload_present` Nullable(Bool) COMMENT 'Whether execution payload was delivered (Gloas+)' CODEC(ZSTD(1)) AFTER execution_payment; + +ALTER TABLE default.beacon_api_eth_v2_beacon_block ON CLUSTER '{cluster}' + ADD COLUMN IF NOT EXISTS `builder_index` Nullable(UInt64) COMMENT 'Builder index from the bid (Gloas+)' CODEC(ZSTD(1)) AFTER execution_payload_slot_number, + ADD COLUMN IF NOT EXISTS `bid_value` Nullable(UInt64) COMMENT 'Bid value in Gwei (Gloas+)' CODEC(ZSTD(1)) AFTER builder_index, + ADD COLUMN IF NOT EXISTS `execution_payment` Nullable(UInt64) COMMENT 'Execution payment in Gwei (Gloas+)' CODEC(ZSTD(1)) AFTER bid_value, + ADD COLUMN IF NOT EXISTS `payload_present` Nullable(Bool) COMMENT 'Whether execution payload was delivered (Gloas+)' CODEC(ZSTD(1)) AFTER execution_payment; + +--------------------------------------------------------------------- +-- 9. ALTER: Add Gloas columns to DataColumnSidecar tables (additive, NULL for Fulu) +--------------------------------------------------------------------- +ALTER TABLE default.beacon_api_eth_v1_events_data_column_sidecar_local ON CLUSTER '{cluster}' + ADD COLUMN IF NOT EXISTS `sidecar_slot` Nullable(UInt32) COMMENT 'Slot from sidecar container (Gloas+, replaces signed_block_header)' CODEC(DoubleDelta, ZSTD(1)), + ADD COLUMN IF NOT EXISTS `sidecar_beacon_block_root` Nullable(FixedString(66)) COMMENT 'Beacon block root from sidecar container (Gloas+, replaces signed_block_header)' CODEC(ZSTD(1)); + +ALTER TABLE default.beacon_api_eth_v1_events_data_column_sidecar ON CLUSTER '{cluster}' + ADD COLUMN IF NOT EXISTS `sidecar_slot` Nullable(UInt32) COMMENT 'Slot from sidecar container (Gloas+, replaces signed_block_header)' CODEC(DoubleDelta, ZSTD(1)), + ADD COLUMN IF NOT EXISTS `sidecar_beacon_block_root` Nullable(FixedString(66)) COMMENT 'Beacon block root from sidecar container (Gloas+, replaces signed_block_header)' CODEC(ZSTD(1)); + +ALTER TABLE default.libp2p_gossipsub_data_column_sidecar_local ON CLUSTER '{cluster}' + ADD COLUMN IF NOT EXISTS `sidecar_slot` Nullable(UInt32) COMMENT 'Slot from sidecar container (Gloas+, replaces signed_block_header)' CODEC(DoubleDelta, ZSTD(1)), + ADD COLUMN IF NOT EXISTS `sidecar_beacon_block_root` Nullable(FixedString(66)) COMMENT 'Beacon block root from sidecar container (Gloas+, replaces signed_block_header)' CODEC(ZSTD(1)); + +ALTER TABLE default.libp2p_gossipsub_data_column_sidecar ON CLUSTER '{cluster}' + ADD COLUMN IF NOT EXISTS `sidecar_slot` Nullable(UInt32) COMMENT 'Slot from sidecar container (Gloas+, replaces signed_block_header)' CODEC(DoubleDelta, ZSTD(1)), + ADD COLUMN IF NOT EXISTS `sidecar_beacon_block_root` Nullable(FixedString(66)) COMMENT 'Beacon block root from sidecar container (Gloas+, replaces signed_block_header)' CODEC(ZSTD(1)); From 6a985364983bc9b6f7bbfb3693b9e5eba5fe1c1c Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Thu, 26 Mar 2026 13:28:35 +1000 Subject: [PATCH 17/23] feat(epbs): add server event handlers, libp2p gossipsub types, and ePBS conditional block routing --- .../beacon/beacon_api_eth_v2_beacon_block.go | 8 + .../route/canonical/canonical_beacon_block.go | 8 + pkg/consumoor/route/routes_test.go | 12 + pkg/proto/eth/v1/block_access_list.pb.go | 2 +- pkg/proto/eth/v1/builder.pb.go | 221 + pkg/proto/eth/v1/execution_payload_bid.pb.go | 353 + .../eth/v1/execution_payload_envelope.pb.go | 312 + pkg/proto/eth/v1/payload_attestation.pb.go | 467 ++ pkg/proto/eth/v1/proposer_preferences.pb.go | 278 + pkg/proto/eth/v2/beacon_block.pb.go | 1876 ++--- pkg/proto/eth/v2/beacon_block.proto | 19 +- pkg/proto/libp2p/gossipsub/eth.pb.go | 594 +- pkg/proto/libp2p/gossipsub/eth.proto | 45 + pkg/proto/xatu/event_ingester.pb.go | 7253 +++++++++-------- pkg/proto/xatu/event_ingester.proto | 10 +- .../beacon/eth/v1/events_execution_payload.go | 46 + .../eth/v1/events_execution_payload_bid.go | 46 + .../eth/v1/events_payload_attestation.go | 46 + .../eth/v1/events_proposer_preferences.go | 46 + .../v2/beacon_block_execution_payload_bid.go | 46 + .../v2/beacon_block_payload_attestation.go | 46 + .../service/event-ingester/event/event.go | 52 + .../trace_gossipsub_execution_payload_bid.go | 46 + ...ce_gossipsub_execution_payload_envelope.go | 46 + ...e_gossipsub_payload_attestation_message.go | 46 + .../trace_gossipsub_proposer_preferences.go | 46 + 26 files changed, 7551 insertions(+), 4419 deletions(-) create mode 100644 pkg/proto/eth/v1/builder.pb.go create mode 100644 pkg/proto/eth/v1/execution_payload_bid.pb.go create mode 100644 pkg/proto/eth/v1/execution_payload_envelope.pb.go create mode 100644 pkg/proto/eth/v1/payload_attestation.pb.go create mode 100644 pkg/proto/eth/v1/proposer_preferences.pb.go create mode 100644 pkg/server/service/event-ingester/event/beacon/eth/v1/events_execution_payload.go create mode 100644 pkg/server/service/event-ingester/event/beacon/eth/v1/events_execution_payload_bid.go create mode 100644 pkg/server/service/event-ingester/event/beacon/eth/v1/events_payload_attestation.go create mode 100644 pkg/server/service/event-ingester/event/beacon/eth/v1/events_proposer_preferences.go create mode 100644 pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_execution_payload_bid.go create mode 100644 pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_payload_attestation.go create mode 100644 pkg/server/service/event-ingester/event/libp2p/trace_gossipsub_execution_payload_bid.go create mode 100644 pkg/server/service/event-ingester/event/libp2p/trace_gossipsub_execution_payload_envelope.go create mode 100644 pkg/server/service/event-ingester/event/libp2p/trace_gossipsub_payload_attestation_message.go create mode 100644 pkg/server/service/event-ingester/event/libp2p/trace_gossipsub_proposer_preferences.go diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go b/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go index 1e76853ab..9389d3197 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go @@ -269,6 +269,14 @@ func (b *beaconApiEthV2BeaconBlockBatch) appendPayloadFromEventBlockV2( body := gloasBlock.GetBody() b.appendEth1Data(body.GetEth1Data()) + // EIP-7732: Under ePBS the block body has a bid instead of an + // inline execution payload. The payload arrives via the envelope. + if body.GetSignedExecutionPayloadBid() != nil { + b.appendNoExecutionPayload() + + return nil + } + return b.appendExecutionPayloadGloas(body.GetExecutionPayload()) } diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block.go b/pkg/consumoor/route/canonical/canonical_beacon_block.go index 66b4fddb7..9e0b358a9 100644 --- a/pkg/consumoor/route/canonical/canonical_beacon_block.go +++ b/pkg/consumoor/route/canonical/canonical_beacon_block.go @@ -260,6 +260,14 @@ func (b *canonicalBeaconBlockBatch) appendPayloadFromEventBlockV2(eventBlock *et body := gloasBlock.GetBody() b.appendEth1Data(body.GetEth1Data()) + // EIP-7732: Under ePBS the block body has a bid instead of an + // inline execution payload. The payload arrives via the envelope. + if body.GetSignedExecutionPayloadBid() != nil { + b.appendNullExecutionPayload() + + return nil + } + return b.appendExecutionPayloadGloas(body.GetExecutionPayload()) } diff --git a/pkg/consumoor/route/routes_test.go b/pkg/consumoor/route/routes_test.go index 0fa575533..3067f238b 100644 --- a/pkg/consumoor/route/routes_test.go +++ b/pkg/consumoor/route/routes_test.go @@ -35,6 +35,18 @@ func TestRegistryCoversAllKnownEvents(t *testing.T) { xatu.Event_BEACON_API_ETH_V1_EVENTS_VOLUNTARY_EXIT: "deprecated in favor of V2 event", xatu.Event_BEACON_API_ETH_V2_BEACON_BLOCK: "deprecated in favor of V2 event", xatu.Event_BEACON_P2P_ATTESTATION: "legacy event path not consumed by consumoor", + + // EIP-7732 ePBS: consumoor routes pending (proto types + ClickHouse tables are ready) + xatu.Event_BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD: "ePBS: consumoor route pending upstream go-eth2-client", + xatu.Event_BEACON_API_ETH_V1_EVENTS_PAYLOAD_ATTESTATION: "ePBS: consumoor route pending upstream go-eth2-client", + xatu.Event_BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD_BID: "ePBS: consumoor route pending upstream go-eth2-client", + xatu.Event_BEACON_API_ETH_V1_EVENTS_PROPOSER_PREFERENCES: "ePBS: consumoor route pending upstream go-eth2-client", + xatu.Event_BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION: "ePBS: consumoor route pending upstream go-eth2-client", + xatu.Event_BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID: "ePBS: consumoor route pending upstream go-eth2-client", + xatu.Event_LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_ENVELOPE: "ePBS: consumoor route pending upstream go-eth2-client", + xatu.Event_LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_BID: "ePBS: consumoor route pending upstream go-eth2-client", + xatu.Event_LIBP2P_TRACE_GOSSIPSUB_PAYLOAD_ATTESTATION_MESSAGE: "ePBS: consumoor route pending upstream go-eth2-client", + xatu.Event_LIBP2P_TRACE_GOSSIPSUB_PROPOSER_PREFERENCES: "ePBS: consumoor route pending upstream go-eth2-client", } covered := make(map[xatu.Event_Name]struct{}, 128) diff --git a/pkg/proto/eth/v1/block_access_list.pb.go b/pkg/proto/eth/v1/block_access_list.pb.go index 784a9c1e2..02c9e685a 100644 --- a/pkg/proto/eth/v1/block_access_list.pb.go +++ b/pkg/proto/eth/v1/block_access_list.pb.go @@ -440,7 +440,7 @@ type BlockAccessListChange struct { unknownFields protoimpl.UnknownFields Address *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - // change_type is one of: "storage", "balance", "nonce", "code", "storage_read" + // change_type is one of: "storage", "balance", "nonce", "code", "storage_read", "touched" ChangeType string `protobuf:"bytes,2,opt,name=change_type,proto3" json:"change_type,omitempty"` BlockAccessIndex *wrapperspb.UInt32Value `protobuf:"bytes,3,opt,name=block_access_index,proto3" json:"block_access_index,omitempty"` // storage_key is set only for storage changes diff --git a/pkg/proto/eth/v1/builder.pb.go b/pkg/proto/eth/v1/builder.pb.go new file mode 100644 index 000000000..5c80eb485 --- /dev/null +++ b/pkg/proto/eth/v1/builder.pb.go @@ -0,0 +1,221 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.34.2 +// protoc (unknown) +// source: pkg/proto/eth/v1/builder.proto + +// EIP-7732: ePBS Builder type +// https://github.com/ethereum/consensus-specs/blob/master/specs/gloas/beacon-chain.md#builder + +package v1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + _ "google.golang.org/protobuf/types/descriptorpb" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + 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) +) + +// Builder represents an enshrined builder in the beacon state. +type Builder struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pubkey string `protobuf:"bytes,1,opt,name=pubkey,proto3" json:"pubkey,omitempty"` + // uint8 in the spec; proto3 has no uint8, so we use UInt32Value. + Version *wrapperspb.UInt32Value `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + ExecutionAddress string `protobuf:"bytes,3,opt,name=execution_address,proto3" json:"execution_address,omitempty"` + Balance *wrapperspb.UInt64Value `protobuf:"bytes,4,opt,name=balance,proto3" json:"balance,omitempty"` + DepositEpoch *wrapperspb.UInt64Value `protobuf:"bytes,5,opt,name=deposit_epoch,proto3" json:"deposit_epoch,omitempty"` + WithdrawableEpoch *wrapperspb.UInt64Value `protobuf:"bytes,6,opt,name=withdrawable_epoch,proto3" json:"withdrawable_epoch,omitempty"` +} + +func (x *Builder) Reset() { + *x = Builder{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_builder_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Builder) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Builder) ProtoMessage() {} + +func (x *Builder) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_builder_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 Builder.ProtoReflect.Descriptor instead. +func (*Builder) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_builder_proto_rawDescGZIP(), []int{0} +} + +func (x *Builder) GetPubkey() string { + if x != nil { + return x.Pubkey + } + return "" +} + +func (x *Builder) GetVersion() *wrapperspb.UInt32Value { + if x != nil { + return x.Version + } + return nil +} + +func (x *Builder) GetExecutionAddress() string { + if x != nil { + return x.ExecutionAddress + } + return "" +} + +func (x *Builder) GetBalance() *wrapperspb.UInt64Value { + if x != nil { + return x.Balance + } + return nil +} + +func (x *Builder) GetDepositEpoch() *wrapperspb.UInt64Value { + if x != nil { + return x.DepositEpoch + } + return nil +} + +func (x *Builder) GetWithdrawableEpoch() *wrapperspb.UInt64Value { + if x != nil { + return x.WithdrawableEpoch + } + return nil +} + +var File_pkg_proto_eth_v1_builder_proto protoreflect.FileDescriptor + +var file_pkg_proto_eth_v1_builder_proto_rawDesc = []byte{ + 0x0a, 0x1e, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, + 0x76, 0x31, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x0b, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0xd1, 0x02, 0x0a, 0x07, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x70, + 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x75, 0x62, + 0x6b, 0x65, 0x79, 0x12, 0x36, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x36, 0x0a, 0x07, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x4c, 0x0a, 0x12, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x12, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, 0x2f, 0x78, 0x61, + 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, + 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_pkg_proto_eth_v1_builder_proto_rawDescOnce sync.Once + file_pkg_proto_eth_v1_builder_proto_rawDescData = file_pkg_proto_eth_v1_builder_proto_rawDesc +) + +func file_pkg_proto_eth_v1_builder_proto_rawDescGZIP() []byte { + file_pkg_proto_eth_v1_builder_proto_rawDescOnce.Do(func() { + file_pkg_proto_eth_v1_builder_proto_rawDescData = protoimpl.X.CompressGZIP(file_pkg_proto_eth_v1_builder_proto_rawDescData) + }) + return file_pkg_proto_eth_v1_builder_proto_rawDescData +} + +var file_pkg_proto_eth_v1_builder_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_pkg_proto_eth_v1_builder_proto_goTypes = []any{ + (*Builder)(nil), // 0: xatu.eth.v1.Builder + (*wrapperspb.UInt32Value)(nil), // 1: google.protobuf.UInt32Value + (*wrapperspb.UInt64Value)(nil), // 2: google.protobuf.UInt64Value +} +var file_pkg_proto_eth_v1_builder_proto_depIdxs = []int32{ + 1, // 0: xatu.eth.v1.Builder.version:type_name -> google.protobuf.UInt32Value + 2, // 1: xatu.eth.v1.Builder.balance:type_name -> google.protobuf.UInt64Value + 2, // 2: xatu.eth.v1.Builder.deposit_epoch:type_name -> google.protobuf.UInt64Value + 2, // 3: xatu.eth.v1.Builder.withdrawable_epoch:type_name -> google.protobuf.UInt64Value + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] 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_pkg_proto_eth_v1_builder_proto_init() } +func file_pkg_proto_eth_v1_builder_proto_init() { + if File_pkg_proto_eth_v1_builder_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_pkg_proto_eth_v1_builder_proto_msgTypes[0].Exporter = func(v any, i int) any { + switch v := v.(*Builder); 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_pkg_proto_eth_v1_builder_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pkg_proto_eth_v1_builder_proto_goTypes, + DependencyIndexes: file_pkg_proto_eth_v1_builder_proto_depIdxs, + MessageInfos: file_pkg_proto_eth_v1_builder_proto_msgTypes, + }.Build() + File_pkg_proto_eth_v1_builder_proto = out.File + file_pkg_proto_eth_v1_builder_proto_rawDesc = nil + file_pkg_proto_eth_v1_builder_proto_goTypes = nil + file_pkg_proto_eth_v1_builder_proto_depIdxs = nil +} diff --git a/pkg/proto/eth/v1/execution_payload_bid.pb.go b/pkg/proto/eth/v1/execution_payload_bid.pb.go new file mode 100644 index 000000000..5e6f54250 --- /dev/null +++ b/pkg/proto/eth/v1/execution_payload_bid.pb.go @@ -0,0 +1,353 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.34.2 +// protoc (unknown) +// source: pkg/proto/eth/v1/execution_payload_bid.proto + +// EIP-7732: ePBS Execution Payload Bid types +// https://github.com/ethereum/consensus-specs/blob/master/specs/gloas/beacon-chain.md#executionpayloadbid + +package v1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + _ "google.golang.org/protobuf/types/descriptorpb" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + 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) +) + +// ExecutionPayloadBid is the builder's bid included in the beacon block body. +type ExecutionPayloadBid struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ParentBlockHash string `protobuf:"bytes,1,opt,name=parent_block_hash,proto3" json:"parent_block_hash,omitempty"` + ParentBlockRoot string `protobuf:"bytes,2,opt,name=parent_block_root,proto3" json:"parent_block_root,omitempty"` + BlockHash string `protobuf:"bytes,3,opt,name=block_hash,proto3" json:"block_hash,omitempty"` + PrevRandao string `protobuf:"bytes,4,opt,name=prev_randao,proto3" json:"prev_randao,omitempty"` + FeeRecipient string `protobuf:"bytes,5,opt,name=fee_recipient,proto3" json:"fee_recipient,omitempty"` + GasLimit *wrapperspb.UInt64Value `protobuf:"bytes,6,opt,name=gas_limit,proto3" json:"gas_limit,omitempty"` + BuilderIndex *wrapperspb.UInt64Value `protobuf:"bytes,7,opt,name=builder_index,proto3" json:"builder_index,omitempty"` + Slot *wrapperspb.UInt64Value `protobuf:"bytes,8,opt,name=slot,proto3" json:"slot,omitempty"` + Value *wrapperspb.UInt64Value `protobuf:"bytes,9,opt,name=value,proto3" json:"value,omitempty"` + ExecutionPayment *wrapperspb.UInt64Value `protobuf:"bytes,10,opt,name=execution_payment,proto3" json:"execution_payment,omitempty"` + BlobKzgCommitments []string `protobuf:"bytes,11,rep,name=blob_kzg_commitments,proto3" json:"blob_kzg_commitments,omitempty"` +} + +func (x *ExecutionPayloadBid) Reset() { + *x = ExecutionPayloadBid{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_execution_payload_bid_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutionPayloadBid) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutionPayloadBid) ProtoMessage() {} + +func (x *ExecutionPayloadBid) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_execution_payload_bid_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 ExecutionPayloadBid.ProtoReflect.Descriptor instead. +func (*ExecutionPayloadBid) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_execution_payload_bid_proto_rawDescGZIP(), []int{0} +} + +func (x *ExecutionPayloadBid) GetParentBlockHash() string { + if x != nil { + return x.ParentBlockHash + } + return "" +} + +func (x *ExecutionPayloadBid) GetParentBlockRoot() string { + if x != nil { + return x.ParentBlockRoot + } + return "" +} + +func (x *ExecutionPayloadBid) GetBlockHash() string { + if x != nil { + return x.BlockHash + } + return "" +} + +func (x *ExecutionPayloadBid) GetPrevRandao() string { + if x != nil { + return x.PrevRandao + } + return "" +} + +func (x *ExecutionPayloadBid) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + +func (x *ExecutionPayloadBid) GetGasLimit() *wrapperspb.UInt64Value { + if x != nil { + return x.GasLimit + } + return nil +} + +func (x *ExecutionPayloadBid) GetBuilderIndex() *wrapperspb.UInt64Value { + if x != nil { + return x.BuilderIndex + } + return nil +} + +func (x *ExecutionPayloadBid) GetSlot() *wrapperspb.UInt64Value { + if x != nil { + return x.Slot + } + return nil +} + +func (x *ExecutionPayloadBid) GetValue() *wrapperspb.UInt64Value { + if x != nil { + return x.Value + } + return nil +} + +func (x *ExecutionPayloadBid) GetExecutionPayment() *wrapperspb.UInt64Value { + if x != nil { + return x.ExecutionPayment + } + return nil +} + +func (x *ExecutionPayloadBid) GetBlobKzgCommitments() []string { + if x != nil { + return x.BlobKzgCommitments + } + return nil +} + +// SignedExecutionPayloadBid wraps ExecutionPayloadBid with the builder's signature. +type SignedExecutionPayloadBid struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message *ExecutionPayloadBid `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + Signature string `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` +} + +func (x *SignedExecutionPayloadBid) Reset() { + *x = SignedExecutionPayloadBid{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_execution_payload_bid_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignedExecutionPayloadBid) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignedExecutionPayloadBid) ProtoMessage() {} + +func (x *SignedExecutionPayloadBid) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_execution_payload_bid_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 SignedExecutionPayloadBid.ProtoReflect.Descriptor instead. +func (*SignedExecutionPayloadBid) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_execution_payload_bid_proto_rawDescGZIP(), []int{1} +} + +func (x *SignedExecutionPayloadBid) GetMessage() *ExecutionPayloadBid { + if x != nil { + return x.Message + } + return nil +} + +func (x *SignedExecutionPayloadBid) GetSignature() string { + if x != nil { + return x.Signature + } + return "" +} + +var File_pkg_proto_eth_v1_execution_payload_bid_proto protoreflect.FileDescriptor + +var file_pkg_proto_eth_v1_execution_payload_bid_proto_rawDesc = []byte{ + 0x0a, 0x2c, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, + 0x76, 0x31, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbf, 0x04, + 0x0a, 0x13, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x42, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, + 0x64, 0x61, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, + 0x69, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x5f, + 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x67, 0x61, 0x73, + 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x32, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x4a, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x14, 0x62, + 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, + 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, + 0x75, 0x0a, 0x19, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x69, 0x64, 0x52, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, + 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_pkg_proto_eth_v1_execution_payload_bid_proto_rawDescOnce sync.Once + file_pkg_proto_eth_v1_execution_payload_bid_proto_rawDescData = file_pkg_proto_eth_v1_execution_payload_bid_proto_rawDesc +) + +func file_pkg_proto_eth_v1_execution_payload_bid_proto_rawDescGZIP() []byte { + file_pkg_proto_eth_v1_execution_payload_bid_proto_rawDescOnce.Do(func() { + file_pkg_proto_eth_v1_execution_payload_bid_proto_rawDescData = protoimpl.X.CompressGZIP(file_pkg_proto_eth_v1_execution_payload_bid_proto_rawDescData) + }) + return file_pkg_proto_eth_v1_execution_payload_bid_proto_rawDescData +} + +var file_pkg_proto_eth_v1_execution_payload_bid_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_pkg_proto_eth_v1_execution_payload_bid_proto_goTypes = []any{ + (*ExecutionPayloadBid)(nil), // 0: xatu.eth.v1.ExecutionPayloadBid + (*SignedExecutionPayloadBid)(nil), // 1: xatu.eth.v1.SignedExecutionPayloadBid + (*wrapperspb.UInt64Value)(nil), // 2: google.protobuf.UInt64Value +} +var file_pkg_proto_eth_v1_execution_payload_bid_proto_depIdxs = []int32{ + 2, // 0: xatu.eth.v1.ExecutionPayloadBid.gas_limit:type_name -> google.protobuf.UInt64Value + 2, // 1: xatu.eth.v1.ExecutionPayloadBid.builder_index:type_name -> google.protobuf.UInt64Value + 2, // 2: xatu.eth.v1.ExecutionPayloadBid.slot:type_name -> google.protobuf.UInt64Value + 2, // 3: xatu.eth.v1.ExecutionPayloadBid.value:type_name -> google.protobuf.UInt64Value + 2, // 4: xatu.eth.v1.ExecutionPayloadBid.execution_payment:type_name -> google.protobuf.UInt64Value + 0, // 5: xatu.eth.v1.SignedExecutionPayloadBid.message:type_name -> xatu.eth.v1.ExecutionPayloadBid + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_pkg_proto_eth_v1_execution_payload_bid_proto_init() } +func file_pkg_proto_eth_v1_execution_payload_bid_proto_init() { + if File_pkg_proto_eth_v1_execution_payload_bid_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_pkg_proto_eth_v1_execution_payload_bid_proto_msgTypes[0].Exporter = func(v any, i int) any { + switch v := v.(*ExecutionPayloadBid); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_eth_v1_execution_payload_bid_proto_msgTypes[1].Exporter = func(v any, i int) any { + switch v := v.(*SignedExecutionPayloadBid); 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_pkg_proto_eth_v1_execution_payload_bid_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pkg_proto_eth_v1_execution_payload_bid_proto_goTypes, + DependencyIndexes: file_pkg_proto_eth_v1_execution_payload_bid_proto_depIdxs, + MessageInfos: file_pkg_proto_eth_v1_execution_payload_bid_proto_msgTypes, + }.Build() + File_pkg_proto_eth_v1_execution_payload_bid_proto = out.File + file_pkg_proto_eth_v1_execution_payload_bid_proto_rawDesc = nil + file_pkg_proto_eth_v1_execution_payload_bid_proto_goTypes = nil + file_pkg_proto_eth_v1_execution_payload_bid_proto_depIdxs = nil +} diff --git a/pkg/proto/eth/v1/execution_payload_envelope.pb.go b/pkg/proto/eth/v1/execution_payload_envelope.pb.go new file mode 100644 index 000000000..9f6417a90 --- /dev/null +++ b/pkg/proto/eth/v1/execution_payload_envelope.pb.go @@ -0,0 +1,312 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.34.2 +// protoc (unknown) +// source: pkg/proto/eth/v1/execution_payload_envelope.proto + +// EIP-7732: ePBS Execution Payload Envelope types +// https://github.com/ethereum/consensus-specs/blob/master/specs/gloas/beacon-chain.md#executionpayloadenvelope + +package v1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + _ "google.golang.org/protobuf/types/descriptorpb" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + 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) +) + +// ExecutionPayloadEnvelope is the container delivered by the builder +// separately from the beacon block (~2s after block). +type ExecutionPayloadEnvelope struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Payload *ExecutionPayloadGloas `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` + ExecutionRequests *ElectraExecutionRequests `protobuf:"bytes,2,opt,name=execution_requests,proto3" json:"execution_requests,omitempty"` + BuilderIndex *wrapperspb.UInt64Value `protobuf:"bytes,3,opt,name=builder_index,proto3" json:"builder_index,omitempty"` + BeaconBlockRoot string `protobuf:"bytes,4,opt,name=beacon_block_root,proto3" json:"beacon_block_root,omitempty"` + Slot *wrapperspb.UInt64Value `protobuf:"bytes,5,opt,name=slot,proto3" json:"slot,omitempty"` + StateRoot string `protobuf:"bytes,6,opt,name=state_root,proto3" json:"state_root,omitempty"` +} + +func (x *ExecutionPayloadEnvelope) Reset() { + *x = ExecutionPayloadEnvelope{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_execution_payload_envelope_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutionPayloadEnvelope) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutionPayloadEnvelope) ProtoMessage() {} + +func (x *ExecutionPayloadEnvelope) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_execution_payload_envelope_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 ExecutionPayloadEnvelope.ProtoReflect.Descriptor instead. +func (*ExecutionPayloadEnvelope) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_execution_payload_envelope_proto_rawDescGZIP(), []int{0} +} + +func (x *ExecutionPayloadEnvelope) GetPayload() *ExecutionPayloadGloas { + if x != nil { + return x.Payload + } + return nil +} + +func (x *ExecutionPayloadEnvelope) GetExecutionRequests() *ElectraExecutionRequests { + if x != nil { + return x.ExecutionRequests + } + return nil +} + +func (x *ExecutionPayloadEnvelope) GetBuilderIndex() *wrapperspb.UInt64Value { + if x != nil { + return x.BuilderIndex + } + return nil +} + +func (x *ExecutionPayloadEnvelope) GetBeaconBlockRoot() string { + if x != nil { + return x.BeaconBlockRoot + } + return "" +} + +func (x *ExecutionPayloadEnvelope) GetSlot() *wrapperspb.UInt64Value { + if x != nil { + return x.Slot + } + return nil +} + +func (x *ExecutionPayloadEnvelope) GetStateRoot() string { + if x != nil { + return x.StateRoot + } + return "" +} + +// SignedExecutionPayloadEnvelope wraps ExecutionPayloadEnvelope with the +// builder's signature. +type SignedExecutionPayloadEnvelope struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message *ExecutionPayloadEnvelope `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + Signature string `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` +} + +func (x *SignedExecutionPayloadEnvelope) Reset() { + *x = SignedExecutionPayloadEnvelope{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_execution_payload_envelope_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignedExecutionPayloadEnvelope) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignedExecutionPayloadEnvelope) ProtoMessage() {} + +func (x *SignedExecutionPayloadEnvelope) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_execution_payload_envelope_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 SignedExecutionPayloadEnvelope.ProtoReflect.Descriptor instead. +func (*SignedExecutionPayloadEnvelope) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_execution_payload_envelope_proto_rawDescGZIP(), []int{1} +} + +func (x *SignedExecutionPayloadEnvelope) GetMessage() *ExecutionPayloadEnvelope { + if x != nil { + return x.Message + } + return nil +} + +func (x *SignedExecutionPayloadEnvelope) GetSignature() string { + if x != nil { + return x.Signature + } + return "" +} + +var File_pkg_proto_eth_v1_execution_payload_envelope_proto protoreflect.FileDescriptor + +var file_pkg_proto_eth_v1_execution_payload_envelope_proto_rawDesc = []byte{ + 0x0a, 0x31, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, + 0x76, 0x31, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x65, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x27, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, + 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x70, 0x6b, 0x67, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf3, 0x02, 0x0a, 0x18, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x76, 0x65, 0x6c, + 0x6f, 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x47, 0x6c, 0x6f, 0x61, 0x73, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x12, 0x55, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6c, 0x65, 0x63, + 0x74, 0x72, 0x61, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x73, 0x52, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2c, 0x0a, 0x11, + 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x22, 0x7f, 0x0a, 0x1e, + 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x12, 0x3f, + 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, + 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x42, 0x2e, 0x5a, + 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, + 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_pkg_proto_eth_v1_execution_payload_envelope_proto_rawDescOnce sync.Once + file_pkg_proto_eth_v1_execution_payload_envelope_proto_rawDescData = file_pkg_proto_eth_v1_execution_payload_envelope_proto_rawDesc +) + +func file_pkg_proto_eth_v1_execution_payload_envelope_proto_rawDescGZIP() []byte { + file_pkg_proto_eth_v1_execution_payload_envelope_proto_rawDescOnce.Do(func() { + file_pkg_proto_eth_v1_execution_payload_envelope_proto_rawDescData = protoimpl.X.CompressGZIP(file_pkg_proto_eth_v1_execution_payload_envelope_proto_rawDescData) + }) + return file_pkg_proto_eth_v1_execution_payload_envelope_proto_rawDescData +} + +var file_pkg_proto_eth_v1_execution_payload_envelope_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_pkg_proto_eth_v1_execution_payload_envelope_proto_goTypes = []any{ + (*ExecutionPayloadEnvelope)(nil), // 0: xatu.eth.v1.ExecutionPayloadEnvelope + (*SignedExecutionPayloadEnvelope)(nil), // 1: xatu.eth.v1.SignedExecutionPayloadEnvelope + (*ExecutionPayloadGloas)(nil), // 2: xatu.eth.v1.ExecutionPayloadGloas + (*ElectraExecutionRequests)(nil), // 3: xatu.eth.v1.ElectraExecutionRequests + (*wrapperspb.UInt64Value)(nil), // 4: google.protobuf.UInt64Value +} +var file_pkg_proto_eth_v1_execution_payload_envelope_proto_depIdxs = []int32{ + 2, // 0: xatu.eth.v1.ExecutionPayloadEnvelope.payload:type_name -> xatu.eth.v1.ExecutionPayloadGloas + 3, // 1: xatu.eth.v1.ExecutionPayloadEnvelope.execution_requests:type_name -> xatu.eth.v1.ElectraExecutionRequests + 4, // 2: xatu.eth.v1.ExecutionPayloadEnvelope.builder_index:type_name -> google.protobuf.UInt64Value + 4, // 3: xatu.eth.v1.ExecutionPayloadEnvelope.slot:type_name -> google.protobuf.UInt64Value + 0, // 4: xatu.eth.v1.SignedExecutionPayloadEnvelope.message:type_name -> xatu.eth.v1.ExecutionPayloadEnvelope + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_pkg_proto_eth_v1_execution_payload_envelope_proto_init() } +func file_pkg_proto_eth_v1_execution_payload_envelope_proto_init() { + if File_pkg_proto_eth_v1_execution_payload_envelope_proto != nil { + return + } + file_pkg_proto_eth_v1_execution_engine_proto_init() + file_pkg_proto_eth_v1_execution_requests_proto_init() + if !protoimpl.UnsafeEnabled { + file_pkg_proto_eth_v1_execution_payload_envelope_proto_msgTypes[0].Exporter = func(v any, i int) any { + switch v := v.(*ExecutionPayloadEnvelope); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_eth_v1_execution_payload_envelope_proto_msgTypes[1].Exporter = func(v any, i int) any { + switch v := v.(*SignedExecutionPayloadEnvelope); 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_pkg_proto_eth_v1_execution_payload_envelope_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pkg_proto_eth_v1_execution_payload_envelope_proto_goTypes, + DependencyIndexes: file_pkg_proto_eth_v1_execution_payload_envelope_proto_depIdxs, + MessageInfos: file_pkg_proto_eth_v1_execution_payload_envelope_proto_msgTypes, + }.Build() + File_pkg_proto_eth_v1_execution_payload_envelope_proto = out.File + file_pkg_proto_eth_v1_execution_payload_envelope_proto_rawDesc = nil + file_pkg_proto_eth_v1_execution_payload_envelope_proto_goTypes = nil + file_pkg_proto_eth_v1_execution_payload_envelope_proto_depIdxs = nil +} diff --git a/pkg/proto/eth/v1/payload_attestation.pb.go b/pkg/proto/eth/v1/payload_attestation.pb.go new file mode 100644 index 000000000..3d6843fea --- /dev/null +++ b/pkg/proto/eth/v1/payload_attestation.pb.go @@ -0,0 +1,467 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.34.2 +// protoc (unknown) +// source: pkg/proto/eth/v1/payload_attestation.proto + +// EIP-7732: ePBS Payload Attestation types +// https://github.com/ethereum/consensus-specs/blob/master/specs/gloas/beacon-chain.md#payloadattestationdata + +package v1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + _ "google.golang.org/protobuf/types/descriptorpb" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + 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) +) + +// PayloadAttestationData is the data that PTC validators attest to. +type PayloadAttestationData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BeaconBlockRoot string `protobuf:"bytes,1,opt,name=beacon_block_root,proto3" json:"beacon_block_root,omitempty"` + Slot *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` + PayloadPresent bool `protobuf:"varint,3,opt,name=payload_present,proto3" json:"payload_present,omitempty"` + BlobDataAvailable bool `protobuf:"varint,4,opt,name=blob_data_available,proto3" json:"blob_data_available,omitempty"` +} + +func (x *PayloadAttestationData) Reset() { + *x = PayloadAttestationData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_payload_attestation_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PayloadAttestationData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PayloadAttestationData) ProtoMessage() {} + +func (x *PayloadAttestationData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_payload_attestation_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 PayloadAttestationData.ProtoReflect.Descriptor instead. +func (*PayloadAttestationData) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_payload_attestation_proto_rawDescGZIP(), []int{0} +} + +func (x *PayloadAttestationData) GetBeaconBlockRoot() string { + if x != nil { + return x.BeaconBlockRoot + } + return "" +} + +func (x *PayloadAttestationData) GetSlot() *wrapperspb.UInt64Value { + if x != nil { + return x.Slot + } + return nil +} + +func (x *PayloadAttestationData) GetPayloadPresent() bool { + if x != nil { + return x.PayloadPresent + } + return false +} + +func (x *PayloadAttestationData) GetBlobDataAvailable() bool { + if x != nil { + return x.BlobDataAvailable + } + return false +} + +// PayloadAttestationMessage is an individual PTC validator's attestation. +// ~512 of these are produced per slot. +type PayloadAttestationMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ValidatorIndex *wrapperspb.UInt64Value `protobuf:"bytes,1,opt,name=validator_index,proto3" json:"validator_index,omitempty"` + Data *PayloadAttestationData `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + Signature string `protobuf:"bytes,3,opt,name=signature,proto3" json:"signature,omitempty"` +} + +func (x *PayloadAttestationMessage) Reset() { + *x = PayloadAttestationMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_payload_attestation_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PayloadAttestationMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PayloadAttestationMessage) ProtoMessage() {} + +func (x *PayloadAttestationMessage) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_payload_attestation_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 PayloadAttestationMessage.ProtoReflect.Descriptor instead. +func (*PayloadAttestationMessage) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_payload_attestation_proto_rawDescGZIP(), []int{1} +} + +func (x *PayloadAttestationMessage) GetValidatorIndex() *wrapperspb.UInt64Value { + if x != nil { + return x.ValidatorIndex + } + return nil +} + +func (x *PayloadAttestationMessage) GetData() *PayloadAttestationData { + if x != nil { + return x.Data + } + return nil +} + +func (x *PayloadAttestationMessage) GetSignature() string { + if x != nil { + return x.Signature + } + return "" +} + +// PayloadAttestation is the aggregated PTC attestation included in the block body. +// Max MAX_PAYLOAD_ATTESTATIONS (4) per block. +type PayloadAttestation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Bitvector[PTC_SIZE] (512 bits) as hex string + AggregationBits string `protobuf:"bytes,1,opt,name=aggregation_bits,proto3" json:"aggregation_bits,omitempty"` + Data *PayloadAttestationData `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + Signature string `protobuf:"bytes,3,opt,name=signature,proto3" json:"signature,omitempty"` +} + +func (x *PayloadAttestation) Reset() { + *x = PayloadAttestation{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_payload_attestation_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PayloadAttestation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PayloadAttestation) ProtoMessage() {} + +func (x *PayloadAttestation) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_payload_attestation_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 PayloadAttestation.ProtoReflect.Descriptor instead. +func (*PayloadAttestation) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_payload_attestation_proto_rawDescGZIP(), []int{2} +} + +func (x *PayloadAttestation) GetAggregationBits() string { + if x != nil { + return x.AggregationBits + } + return "" +} + +func (x *PayloadAttestation) GetData() *PayloadAttestationData { + if x != nil { + return x.Data + } + return nil +} + +func (x *PayloadAttestation) GetSignature() string { + if x != nil { + return x.Signature + } + return "" +} + +// IndexedPayloadAttestation is a PayloadAttestation with attesting indices +// expanded from the aggregation bits. +type IndexedPayloadAttestation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AttestingIndices []*wrapperspb.UInt64Value `protobuf:"bytes,1,rep,name=attesting_indices,proto3" json:"attesting_indices,omitempty"` + Data *PayloadAttestationData `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + Signature string `protobuf:"bytes,3,opt,name=signature,proto3" json:"signature,omitempty"` +} + +func (x *IndexedPayloadAttestation) Reset() { + *x = IndexedPayloadAttestation{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_payload_attestation_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IndexedPayloadAttestation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IndexedPayloadAttestation) ProtoMessage() {} + +func (x *IndexedPayloadAttestation) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_payload_attestation_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 IndexedPayloadAttestation.ProtoReflect.Descriptor instead. +func (*IndexedPayloadAttestation) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_payload_attestation_proto_rawDescGZIP(), []int{3} +} + +func (x *IndexedPayloadAttestation) GetAttestingIndices() []*wrapperspb.UInt64Value { + if x != nil { + return x.AttestingIndices + } + return nil +} + +func (x *IndexedPayloadAttestation) GetData() *PayloadAttestationData { + if x != nil { + return x.Data + } + return nil +} + +func (x *IndexedPayloadAttestation) GetSignature() string { + if x != nil { + return x.Signature + } + return "" +} + +var File_pkg_proto_eth_v1_payload_attestation_proto protoreflect.FileDescriptor + +var file_pkg_proto_eth_v1_payload_attestation_proto_rawDesc = []byte{ + 0x0a, 0x2a, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd4, 0x01, 0x0a, 0x16, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x11, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x11, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, + 0x12, 0x30, 0x0a, 0x13, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x62, + 0x6c, 0x6f, 0x62, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x46, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, + 0x97, 0x01, 0x0a, 0x12, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x69, + 0x74, 0x73, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xbe, 0x01, 0x0a, 0x19, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x65, 0x64, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x11, 0x61, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x11, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x64, 0x69, + 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, + 0x61, 0x6f, 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_pkg_proto_eth_v1_payload_attestation_proto_rawDescOnce sync.Once + file_pkg_proto_eth_v1_payload_attestation_proto_rawDescData = file_pkg_proto_eth_v1_payload_attestation_proto_rawDesc +) + +func file_pkg_proto_eth_v1_payload_attestation_proto_rawDescGZIP() []byte { + file_pkg_proto_eth_v1_payload_attestation_proto_rawDescOnce.Do(func() { + file_pkg_proto_eth_v1_payload_attestation_proto_rawDescData = protoimpl.X.CompressGZIP(file_pkg_proto_eth_v1_payload_attestation_proto_rawDescData) + }) + return file_pkg_proto_eth_v1_payload_attestation_proto_rawDescData +} + +var file_pkg_proto_eth_v1_payload_attestation_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_pkg_proto_eth_v1_payload_attestation_proto_goTypes = []any{ + (*PayloadAttestationData)(nil), // 0: xatu.eth.v1.PayloadAttestationData + (*PayloadAttestationMessage)(nil), // 1: xatu.eth.v1.PayloadAttestationMessage + (*PayloadAttestation)(nil), // 2: xatu.eth.v1.PayloadAttestation + (*IndexedPayloadAttestation)(nil), // 3: xatu.eth.v1.IndexedPayloadAttestation + (*wrapperspb.UInt64Value)(nil), // 4: google.protobuf.UInt64Value +} +var file_pkg_proto_eth_v1_payload_attestation_proto_depIdxs = []int32{ + 4, // 0: xatu.eth.v1.PayloadAttestationData.slot:type_name -> google.protobuf.UInt64Value + 4, // 1: xatu.eth.v1.PayloadAttestationMessage.validator_index:type_name -> google.protobuf.UInt64Value + 0, // 2: xatu.eth.v1.PayloadAttestationMessage.data:type_name -> xatu.eth.v1.PayloadAttestationData + 0, // 3: xatu.eth.v1.PayloadAttestation.data:type_name -> xatu.eth.v1.PayloadAttestationData + 4, // 4: xatu.eth.v1.IndexedPayloadAttestation.attesting_indices:type_name -> google.protobuf.UInt64Value + 0, // 5: xatu.eth.v1.IndexedPayloadAttestation.data:type_name -> xatu.eth.v1.PayloadAttestationData + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_pkg_proto_eth_v1_payload_attestation_proto_init() } +func file_pkg_proto_eth_v1_payload_attestation_proto_init() { + if File_pkg_proto_eth_v1_payload_attestation_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_pkg_proto_eth_v1_payload_attestation_proto_msgTypes[0].Exporter = func(v any, i int) any { + switch v := v.(*PayloadAttestationData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_eth_v1_payload_attestation_proto_msgTypes[1].Exporter = func(v any, i int) any { + switch v := v.(*PayloadAttestationMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_eth_v1_payload_attestation_proto_msgTypes[2].Exporter = func(v any, i int) any { + switch v := v.(*PayloadAttestation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_eth_v1_payload_attestation_proto_msgTypes[3].Exporter = func(v any, i int) any { + switch v := v.(*IndexedPayloadAttestation); 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_pkg_proto_eth_v1_payload_attestation_proto_rawDesc, + NumEnums: 0, + NumMessages: 4, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pkg_proto_eth_v1_payload_attestation_proto_goTypes, + DependencyIndexes: file_pkg_proto_eth_v1_payload_attestation_proto_depIdxs, + MessageInfos: file_pkg_proto_eth_v1_payload_attestation_proto_msgTypes, + }.Build() + File_pkg_proto_eth_v1_payload_attestation_proto = out.File + file_pkg_proto_eth_v1_payload_attestation_proto_rawDesc = nil + file_pkg_proto_eth_v1_payload_attestation_proto_goTypes = nil + file_pkg_proto_eth_v1_payload_attestation_proto_depIdxs = nil +} diff --git a/pkg/proto/eth/v1/proposer_preferences.pb.go b/pkg/proto/eth/v1/proposer_preferences.pb.go new file mode 100644 index 000000000..816726ecf --- /dev/null +++ b/pkg/proto/eth/v1/proposer_preferences.pb.go @@ -0,0 +1,278 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.34.2 +// protoc (unknown) +// source: pkg/proto/eth/v1/proposer_preferences.proto + +// EIP-7732: ePBS Proposer Preferences types +// https://github.com/ethereum/consensus-specs/blob/master/specs/gloas/p2p-interface.md#new-proposerpreferences + +package v1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + _ "google.golang.org/protobuf/types/descriptorpb" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + 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) +) + +// ProposerPreferences signals the proposer's preferences for their upcoming +// slot (fee recipient, gas limit). Gossiped on P2P. +type ProposerPreferences struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProposalSlot *wrapperspb.UInt64Value `protobuf:"bytes,1,opt,name=proposal_slot,proto3" json:"proposal_slot,omitempty"` + ValidatorIndex *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=validator_index,proto3" json:"validator_index,omitempty"` + FeeRecipient string `protobuf:"bytes,3,opt,name=fee_recipient,proto3" json:"fee_recipient,omitempty"` + GasLimit *wrapperspb.UInt64Value `protobuf:"bytes,4,opt,name=gas_limit,proto3" json:"gas_limit,omitempty"` +} + +func (x *ProposerPreferences) Reset() { + *x = ProposerPreferences{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_proposer_preferences_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProposerPreferences) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProposerPreferences) ProtoMessage() {} + +func (x *ProposerPreferences) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_proposer_preferences_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 ProposerPreferences.ProtoReflect.Descriptor instead. +func (*ProposerPreferences) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_proposer_preferences_proto_rawDescGZIP(), []int{0} +} + +func (x *ProposerPreferences) GetProposalSlot() *wrapperspb.UInt64Value { + if x != nil { + return x.ProposalSlot + } + return nil +} + +func (x *ProposerPreferences) GetValidatorIndex() *wrapperspb.UInt64Value { + if x != nil { + return x.ValidatorIndex + } + return nil +} + +func (x *ProposerPreferences) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + +func (x *ProposerPreferences) GetGasLimit() *wrapperspb.UInt64Value { + if x != nil { + return x.GasLimit + } + return nil +} + +// SignedProposerPreferences wraps ProposerPreferences with the proposer's +// signature. +type SignedProposerPreferences struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message *ProposerPreferences `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + Signature string `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` +} + +func (x *SignedProposerPreferences) Reset() { + *x = SignedProposerPreferences{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_eth_v1_proposer_preferences_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignedProposerPreferences) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignedProposerPreferences) ProtoMessage() {} + +func (x *SignedProposerPreferences) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_eth_v1_proposer_preferences_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 SignedProposerPreferences.ProtoReflect.Descriptor instead. +func (*SignedProposerPreferences) Descriptor() ([]byte, []int) { + return file_pkg_proto_eth_v1_proposer_preferences_proto_rawDescGZIP(), []int{1} +} + +func (x *SignedProposerPreferences) GetMessage() *ProposerPreferences { + if x != nil { + return x.Message + } + return nil +} + +func (x *SignedProposerPreferences) GetSignature() string { + if x != nil { + return x.Signature + } + return "" +} + +var File_pkg_proto_eth_v1_proposer_preferences_proto protoreflect.FileDescriptor + +var file_pkg_proto_eth_v1_proposer_preferences_proto_rawDesc = []byte{ + 0x0a, 0x2b, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x83, 0x02, 0x0a, + 0x13, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x46, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, + 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x22, 0x75, 0x0a, 0x19, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, + 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, + 0x6f, 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_pkg_proto_eth_v1_proposer_preferences_proto_rawDescOnce sync.Once + file_pkg_proto_eth_v1_proposer_preferences_proto_rawDescData = file_pkg_proto_eth_v1_proposer_preferences_proto_rawDesc +) + +func file_pkg_proto_eth_v1_proposer_preferences_proto_rawDescGZIP() []byte { + file_pkg_proto_eth_v1_proposer_preferences_proto_rawDescOnce.Do(func() { + file_pkg_proto_eth_v1_proposer_preferences_proto_rawDescData = protoimpl.X.CompressGZIP(file_pkg_proto_eth_v1_proposer_preferences_proto_rawDescData) + }) + return file_pkg_proto_eth_v1_proposer_preferences_proto_rawDescData +} + +var file_pkg_proto_eth_v1_proposer_preferences_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_pkg_proto_eth_v1_proposer_preferences_proto_goTypes = []any{ + (*ProposerPreferences)(nil), // 0: xatu.eth.v1.ProposerPreferences + (*SignedProposerPreferences)(nil), // 1: xatu.eth.v1.SignedProposerPreferences + (*wrapperspb.UInt64Value)(nil), // 2: google.protobuf.UInt64Value +} +var file_pkg_proto_eth_v1_proposer_preferences_proto_depIdxs = []int32{ + 2, // 0: xatu.eth.v1.ProposerPreferences.proposal_slot:type_name -> google.protobuf.UInt64Value + 2, // 1: xatu.eth.v1.ProposerPreferences.validator_index:type_name -> google.protobuf.UInt64Value + 2, // 2: xatu.eth.v1.ProposerPreferences.gas_limit:type_name -> google.protobuf.UInt64Value + 0, // 3: xatu.eth.v1.SignedProposerPreferences.message:type_name -> xatu.eth.v1.ProposerPreferences + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] 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_pkg_proto_eth_v1_proposer_preferences_proto_init() } +func file_pkg_proto_eth_v1_proposer_preferences_proto_init() { + if File_pkg_proto_eth_v1_proposer_preferences_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_pkg_proto_eth_v1_proposer_preferences_proto_msgTypes[0].Exporter = func(v any, i int) any { + switch v := v.(*ProposerPreferences); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_eth_v1_proposer_preferences_proto_msgTypes[1].Exporter = func(v any, i int) any { + switch v := v.(*SignedProposerPreferences); 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_pkg_proto_eth_v1_proposer_preferences_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pkg_proto_eth_v1_proposer_preferences_proto_goTypes, + DependencyIndexes: file_pkg_proto_eth_v1_proposer_preferences_proto_depIdxs, + MessageInfos: file_pkg_proto_eth_v1_proposer_preferences_proto_msgTypes, + }.Build() + File_pkg_proto_eth_v1_proposer_preferences_proto = out.File + file_pkg_proto_eth_v1_proposer_preferences_proto_rawDesc = nil + file_pkg_proto_eth_v1_proposer_preferences_proto_goTypes = nil + file_pkg_proto_eth_v1_proposer_preferences_proto_depIdxs = nil +} diff --git a/pkg/proto/eth/v2/beacon_block.pb.go b/pkg/proto/eth/v2/beacon_block.pb.go index 92210b79e..54867956a 100644 --- a/pkg/proto/eth/v2/beacon_block.pb.go +++ b/pkg/proto/eth/v2/beacon_block.pb.go @@ -3058,19 +3058,26 @@ type BeaconBlockBodyGloas struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RandaoReveal string `protobuf:"bytes,1,opt,name=randao_reveal,proto3" json:"randao_reveal,omitempty"` - Eth1Data *v1.Eth1Data `protobuf:"bytes,2,opt,name=eth1_data,proto3" json:"eth1_data,omitempty"` - Graffiti string `protobuf:"bytes,3,opt,name=graffiti,proto3" json:"graffiti,omitempty"` - ProposerSlashings []*v1.ProposerSlashing `protobuf:"bytes,4,rep,name=proposer_slashings,proto3" json:"proposer_slashings,omitempty"` - AttesterSlashings []*v1.AttesterSlashing `protobuf:"bytes,5,rep,name=attester_slashings,proto3" json:"attester_slashings,omitempty"` - Attestations []*v1.Attestation `protobuf:"bytes,6,rep,name=attestations,proto3" json:"attestations,omitempty"` - Deposits []*v1.Deposit `protobuf:"bytes,7,rep,name=deposits,proto3" json:"deposits,omitempty"` - VoluntaryExits []*v1.SignedVoluntaryExit `protobuf:"bytes,8,rep,name=voluntary_exits,proto3" json:"voluntary_exits,omitempty"` - SyncAggregate *v1.SyncAggregate `protobuf:"bytes,9,opt,name=sync_aggregate,proto3" json:"sync_aggregate,omitempty"` + RandaoReveal string `protobuf:"bytes,1,opt,name=randao_reveal,proto3" json:"randao_reveal,omitempty"` + Eth1Data *v1.Eth1Data `protobuf:"bytes,2,opt,name=eth1_data,proto3" json:"eth1_data,omitempty"` + Graffiti string `protobuf:"bytes,3,opt,name=graffiti,proto3" json:"graffiti,omitempty"` + ProposerSlashings []*v1.ProposerSlashing `protobuf:"bytes,4,rep,name=proposer_slashings,proto3" json:"proposer_slashings,omitempty"` + AttesterSlashings []*v1.AttesterSlashing `protobuf:"bytes,5,rep,name=attester_slashings,proto3" json:"attester_slashings,omitempty"` + Attestations []*v1.Attestation `protobuf:"bytes,6,rep,name=attestations,proto3" json:"attestations,omitempty"` + Deposits []*v1.Deposit `protobuf:"bytes,7,rep,name=deposits,proto3" json:"deposits,omitempty"` + VoluntaryExits []*v1.SignedVoluntaryExit `protobuf:"bytes,8,rep,name=voluntary_exits,proto3" json:"voluntary_exits,omitempty"` + SyncAggregate *v1.SyncAggregate `protobuf:"bytes,9,opt,name=sync_aggregate,proto3" json:"sync_aggregate,omitempty"` + // Pre-ePBS: execution payload inline in block body. ExecutionPayload *v1.ExecutionPayloadGloas `protobuf:"bytes,10,opt,name=execution_payload,proto3" json:"execution_payload,omitempty"` BlsToExecutionChanges []*SignedBLSToExecutionChange `protobuf:"bytes,11,rep,name=bls_to_execution_changes,proto3" json:"bls_to_execution_changes,omitempty"` - BlobKzgCommitments []string `protobuf:"bytes,12,rep,name=blob_kzg_commitments,proto3" json:"blob_kzg_commitments,omitempty"` - ExecutionRequests *v1.ElectraExecutionRequests `protobuf:"bytes,13,opt,name=execution_requests,proto3" json:"execution_requests,omitempty"` + // Pre-ePBS: blob KZG commitments inline in block body. + BlobKzgCommitments []string `protobuf:"bytes,12,rep,name=blob_kzg_commitments,proto3" json:"blob_kzg_commitments,omitempty"` + // Pre-ePBS: execution requests inline in block body. + ExecutionRequests *v1.ElectraExecutionRequests `protobuf:"bytes,13,opt,name=execution_requests,proto3" json:"execution_requests,omitempty"` + // EIP-7732 ePBS: Builder's bid (replaces execution_payload when ePBS is active). + SignedExecutionPayloadBid *v1.SignedExecutionPayloadBid `protobuf:"bytes,14,opt,name=signed_execution_payload_bid,proto3" json:"signed_execution_payload_bid,omitempty"` + // EIP-7732 ePBS: Aggregated PTC attestations (max 4 per block). + PayloadAttestations []*v1.PayloadAttestation `protobuf:"bytes,15,rep,name=payload_attestations,proto3" json:"payload_attestations,omitempty"` } func (x *BeaconBlockBodyGloas) Reset() { @@ -3196,6 +3203,20 @@ func (x *BeaconBlockBodyGloas) GetExecutionRequests() *v1.ElectraExecutionReques return nil } +func (x *BeaconBlockBodyGloas) GetSignedExecutionPayloadBid() *v1.SignedExecutionPayloadBid { + if x != nil { + return x.SignedExecutionPayloadBid + } + return nil +} + +func (x *BeaconBlockBodyGloas) GetPayloadAttestations() []*v1.PayloadAttestation { + if x != nil { + return x.PayloadAttestations + } + return nil +} + type BlindedBeaconBlockBodyCapella struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3691,212 +3712,201 @@ var file_pkg_proto_eth_v2_beacon_block_proto_rawDesc = []byte{ 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x27, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x32, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x61, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x70, 0x6b, 0x67, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x77, 0x0a, 0x1a, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, - 0x72, 0x69, 0x78, 0x12, 0x3b, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, - 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x7b, - 0x0a, 0x1c, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x12, 0x3d, - 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, - 0x69, 0x78, 0x56, 0x32, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x73, 0x0a, 0x18, 0x53, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x12, 0x39, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x22, 0x77, 0x0a, 0x1a, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x12, 0x3b, - 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, - 0x56, 0x32, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x6f, 0x0a, 0x16, 0x53, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, - 0x6e, 0x65, 0x62, 0x12, 0x37, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, - 0x6e, 0x65, 0x62, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x73, 0x0a, 0x18, 0x53, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, - 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x12, 0x39, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, - 0x6d, 0x0a, 0x15, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x75, 0x6c, 0x75, 0x12, 0x36, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x69, 0x64, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x61, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x22, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, + 0x76, 0x32, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0x77, 0x0a, 0x1a, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x3b, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, + 0x78, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x7b, 0x0a, 0x1c, 0x53, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, + 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x12, 0x3d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x46, 0x75, 0x6c, 0x75, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x6f, - 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x47, 0x6c, 0x6f, 0x61, 0x73, 0x12, 0x37, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x73, 0x0a, 0x18, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, + 0x61, 0x12, 0x39, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, + 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, + 0x6c, 0x6c, 0x61, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x77, 0x0a, 0x1a, 0x53, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, + 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x12, 0x3b, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x47, 0x6c, 0x6f, 0x61, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, - 0x85, 0x01, 0x0a, 0x21, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, - 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, - 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x42, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, - 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x53, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x12, - 0x44, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, - 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x52, 0x07, 0x6d, 0x65, + 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x1f, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x6c, - 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x12, 0x40, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x75, 0x72, 0x65, 0x22, 0x6f, 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x6e, 0x65, 0x62, 0x12, 0x37, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x6e, 0x65, 0x62, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x22, 0x73, 0x0a, 0x18, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, + 0x12, 0x39, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, + 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6c, 0x65, 0x63, 0x74, + 0x72, 0x61, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x6d, 0x0a, 0x15, 0x53, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x75, + 0x6c, 0x75, 0x12, 0x36, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x75, 0x6c, + 0x75, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x6f, 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6c, 0x6f, + 0x61, 0x73, 0x12, 0x37, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6c, 0x6f, + 0x61, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x21, 0x53, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, + 0x42, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, + 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x6c, 0x69, 0x6e, + 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, + 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x12, 0x44, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, + 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, + 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x81, 0x01, + 0x0a, 0x1f, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, + 0x61, 0x12, 0x40, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, + 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x22, 0x85, 0x01, 0x0a, 0x21, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x6c, 0x69, 0x6e, + 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, + 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x12, 0x42, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, - 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x21, 0x53, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x12, 0x42, 0x0a, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, - 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, - 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, - 0x71, 0x0a, 0x17, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x12, 0x38, 0x0a, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x22, 0x75, 0x0a, 0x19, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x56, 0x32, 0x12, - 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x56, 0x32, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x14, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, - 0x69, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, - 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x12, 0x39, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, - 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x8f, 0x02, 0x0a, 0x16, - 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, - 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, - 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x12, 0x3b, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, - 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0xdd, 0x01, - 0x0a, 0x1b, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x12, 0x0a, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x62, - 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, - 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x9d, 0x02, - 0x0a, 0x1d, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x12, - 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, - 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x62, 0x6f, 0x64, - 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, - 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0xcb, 0x01, - 0x0a, 0x12, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, - 0x65, 0x6c, 0x6c, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, - 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, - 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, - 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x8b, 0x02, 0x0a, 0x14, - 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, - 0x6c, 0x61, 0x56, 0x32, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x71, 0x0a, 0x17, 0x53, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, + 0x74, 0x61, 0x69, 0x72, 0x12, 0x38, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, + 0x6c, 0x74, 0x61, 0x69, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x75, 0x0a, 0x19, + 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x56, 0x32, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x56, 0x32, 0x52, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x14, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x62, 0x6f, + 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, + 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x8f, 0x02, 0x0a, 0x16, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, + 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, - 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x39, - 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, - 0x61, 0x56, 0x32, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x83, 0x02, 0x0a, 0x10, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x6e, 0x65, 0x62, 0x12, 0x30, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x62, 0x6f, + 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, + 0x32, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0xdd, 0x01, 0x0a, 0x1b, 0x42, 0x6c, 0x69, 0x6e, + 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, + 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, + 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x32, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, + 0x78, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x9d, 0x02, 0x0a, 0x1d, 0x42, 0x6c, 0x69, 0x6e, + 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x65, + 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, + 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, + 0x32, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0xcb, 0x01, 0x0a, 0x12, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x04, + 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x52, + 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x8b, 0x02, 0x0a, 0x14, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, @@ -3908,539 +3918,139 @@ var file_pkg_proto_eth_v2_beacon_block_proto_rawDesc = []byte{ 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x42, 0x6f, 0x64, 0x79, 0x44, 0x65, 0x6e, 0x65, 0x62, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, - 0x87, 0x02, 0x0a, 0x12, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, - 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, - 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x12, 0x37, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x45, 0x6c, 0x65, 0x63, - 0x74, 0x72, 0x61, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x81, 0x02, 0x0a, 0x0f, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x75, 0x6c, 0x75, 0x12, 0x30, 0x0a, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, - 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, - 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, - 0x6f, 0x64, 0x79, 0x46, 0x75, 0x6c, 0x75, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x83, 0x02, - 0x0a, 0x10, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6c, 0x6f, - 0x61, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, - 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, - 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x04, - 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x47, 0x6c, 0x6f, 0x61, 0x73, 0x52, 0x04, 0x62, - 0x6f, 0x64, 0x79, 0x22, 0xd9, 0x01, 0x0a, 0x19, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, - 0x61, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, - 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, - 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, - 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, - 0x3e, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, 0x6e, - 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, - 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, - 0x99, 0x02, 0x0a, 0x1b, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x12, - 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x52, 0x04, 0x62, + 0x6f, 0x64, 0x79, 0x22, 0x83, 0x02, 0x0a, 0x10, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x6e, 0x65, 0x62, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, + 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, + 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x44, 0x65, + 0x6e, 0x65, 0x62, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x87, 0x02, 0x0a, 0x12, 0x42, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, + 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x62, 0x6f, + 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x52, 0x04, 0x62, + 0x6f, 0x64, 0x79, 0x22, 0x81, 0x02, 0x0a, 0x0f, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x46, 0x75, 0x6c, 0x75, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, + 0x74, 0x12, 0x34, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x46, 0x75, 0x6c, + 0x75, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x83, 0x02, 0x0a, 0x10, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6c, 0x6f, 0x61, 0x73, 0x12, 0x30, 0x0a, 0x04, + 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, + 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, + 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, + 0x64, 0x79, 0x47, 0x6c, 0x6f, 0x61, 0x73, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0xd9, 0x01, + 0x0a, 0x19, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, + 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x62, 0x6f, 0x64, - 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x62, 0x6f, 0x64, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, - 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0xc9, 0x01, 0x0a, 0x11, - 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, - 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, - 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, - 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, - 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, - 0x36, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x41, 0x6c, 0x74, 0x61, 0x69, - 0x72, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x89, 0x02, 0x0a, 0x13, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x56, 0x32, 0x12, - 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x6c, 0x6c, 0x61, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x99, 0x02, 0x0a, 0x1b, 0x42, 0x6c, + 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, + 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x52, + 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0xc9, 0x01, 0x0a, 0x11, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, + 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x62, 0x6f, 0x64, - 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x36, 0x0a, 0x04, 0x62, 0x6f, 0x64, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x56, 0x32, 0x52, 0x04, 0x62, - 0x6f, 0x64, 0x79, 0x22, 0xfc, 0x04, 0x0a, 0x18, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, - 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, - 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, - 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, - 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, - 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, - 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, - 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, - 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, - 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, - 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, - 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, - 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x4b, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, - 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x22, 0x80, 0x05, 0x0a, 0x1a, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, - 0x32, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, - 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, - 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, - 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, - 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, - 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, - 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, - 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, - 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, - 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, - 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x56, 0x32, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x97, 0x05, 0x0a, 0x1f, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, - 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, - 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, - 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, - 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, - 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, - 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, - 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, - 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, - 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, - 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, - 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, - 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, - 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, - 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, - 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, - 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x5f, - 0x0a, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, - 0x9b, 0x05, 0x0a, 0x21, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, - 0x72, 0x69, 0x78, 0x56, 0x32, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, - 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, - 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, - 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, - 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, - 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, - 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, - 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, - 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, - 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, - 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, - 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, - 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x61, 0x0a, 0x18, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x56, 0x32, 0x52, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xe6, 0x05, - 0x0a, 0x16, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, - 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, - 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, - 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, - 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, - 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, - 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, - 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, - 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, - 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, - 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, - 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, - 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, - 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, - 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x52, 0x11, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, - 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0xea, 0x05, 0x0a, 0x18, 0x42, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, - 0x61, 0x56, 0x32, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, - 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, - 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, - 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, - 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, - 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, - 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, - 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, - 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, - 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, - 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, - 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, - 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x54, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x52, 0x11, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x63, - 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, - 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x22, 0x96, 0x06, 0x0a, 0x14, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x44, 0x65, 0x6e, 0x65, 0x62, 0x12, 0x24, 0x0a, 0x0d, - 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, - 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, - 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, - 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, - 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, - 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, - 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, - 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, - 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, - 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, - 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x12, 0x50, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6e, 0x65, 0x62, - 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, - 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, - 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x62, 0x6c, 0x6f, 0x62, - 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, - 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xf1, 0x06, 0x0a, - 0x16, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, - 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, - 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, - 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, - 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, - 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, - 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, - 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, - 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, - 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, - 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, - 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, - 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x11, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x52, 0x11, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, - 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, - 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, - 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x55, 0x0a, 0x12, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x12, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, - 0x22, 0xee, 0x06, 0x0a, 0x13, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x42, 0x6f, 0x64, 0x79, 0x46, 0x75, 0x6c, 0x75, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, - 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, - 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, - 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, - 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, - 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, - 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, - 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, - 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, - 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, - 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, - 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, - 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, - 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x52, 0x11, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, - 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, - 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x55, 0x0a, 0x12, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x12, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x73, 0x22, 0xed, 0x06, 0x0a, 0x14, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x47, 0x6c, 0x6f, 0x61, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, + 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x52, 0x04, 0x62, 0x6f, 0x64, + 0x79, 0x22, 0x89, 0x02, 0x0a, 0x13, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x56, 0x32, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, + 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x41, + 0x6c, 0x74, 0x61, 0x69, 0x72, 0x56, 0x32, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0xfc, 0x04, + 0x0a, 0x18, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, + 0x79, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, @@ -4474,29 +4084,54 @@ var file_pkg_proto_eth_v2_beacon_block_proto_rawDesc = []byte{ 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, - 0x50, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, + 0x4b, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x47, 0x6c, 0x6f, 0x61, 0x73, 0x52, 0x11, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, - 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, - 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x55, 0x0a, 0x12, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x12, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x73, 0x22, 0x81, 0x06, 0x0a, 0x1d, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, - 0x6c, 0x6c, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, + 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x80, 0x05, 0x0a, + 0x1a, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, + 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x12, 0x24, 0x0a, 0x0d, 0x72, + 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, + 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, + 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, + 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, + 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, + 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, + 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, + 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, + 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, + 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, + 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, + 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, + 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, + 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x56, 0x32, 0x52, 0x11, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, + 0x97, 0x05, 0x0a, 0x1f, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, + 0x72, 0x69, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, @@ -4529,142 +4164,545 @@ var file_pkg_proto_eth_v2_beacon_block_proto_rawDesc = []byte{ 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x66, 0x0a, 0x18, 0x65, 0x78, 0x65, 0x63, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x5f, 0x0a, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, + 0x61, 0x64, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, - 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x52, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, + 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x9b, 0x05, 0x0a, 0x21, 0x42, 0x6c, + 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x42, 0x6f, 0x64, 0x79, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x32, 0x12, + 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, + 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, + 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, + 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, + 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, + 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, + 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, + 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, + 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x65, 0x12, 0x61, 0x0a, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, - 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, - 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x85, 0x06, 0x0a, 0x1f, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, - 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, - 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, - 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, - 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, - 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, - 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, - 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, - 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, - 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, - 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, - 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, - 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, - 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, - 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, - 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, - 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x68, - 0x0a, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x52, 0x18, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x32, 0x52, 0x18, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xe6, 0x05, 0x0a, 0x16, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, + 0x6c, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, + 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, + 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, + 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, + 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, + 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, + 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, + 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, + 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, + 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, + 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x63, 0x0a, 0x18, 0x62, + 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x22, 0xea, 0x05, 0x0a, 0x18, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x12, 0x24, 0x0a, + 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, + 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, + 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, + 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, + 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, + 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, + 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, + 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, + 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, + 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, + 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, + 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, + 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, + 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x12, 0x54, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x70, 0x65, + 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0xac, 0x04, - 0x0a, 0x15, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, - 0x79, 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, - 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, - 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, - 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, - 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, - 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x96, 0x06, + 0x0a, 0x14, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, + 0x79, 0x44, 0x65, 0x6e, 0x65, 0x62, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, + 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, + 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, + 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, + 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, + 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, + 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, + 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, + 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, + 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, + 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, + 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, + 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, + 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, + 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6e, 0x65, 0x62, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x63, 0x0a, + 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, + 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xf1, 0x06, 0x0a, 0x16, 0x42, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, + 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, + 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, + 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, + 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, + 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, + 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, + 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, + 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, + 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, + 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, + 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, + 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, + 0x32, 0x0a, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x62, + 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x55, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6c, + 0x65, 0x63, 0x74, 0x72, 0x61, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0xee, 0x06, 0x0a, 0x13, 0x42, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x46, 0x75, + 0x6c, 0x75, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, + 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, + 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, + 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, + 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, + 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, + 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, + 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, + 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, + 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, + 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x63, 0x0a, 0x18, 0x62, + 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x12, 0x32, 0x0a, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, + 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x12, 0x55, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0xae, 0x08, 0x0a, 0x14, + 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x47, + 0x6c, 0x6f, 0x61, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, + 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, + 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, + 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, + 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, + 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, + 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, + 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, + 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, + 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, + 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, + 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, + 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x47, 0x6c, 0x6f, 0x61, 0x73, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x63, 0x0a, 0x18, 0x62, + 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x12, 0x32, 0x0a, 0x14, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, + 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x12, 0x55, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x6c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x6a, 0x0a, 0x1c, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x69, 0x64, 0x52, 0x1c, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x69, 0x64, 0x12, 0x53, 0x0a, 0x14, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, + 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x81, 0x06, 0x0a, + 0x1d, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x12, 0x24, + 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, + 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, + 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, + 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, + 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, + 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, + 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, + 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, - 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, - 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, - 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, - 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, - 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x22, 0xae, 0x04, 0x0a, - 0x17, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, - 0x41, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x56, 0x32, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, - 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, - 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, - 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, - 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, - 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, - 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, - 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, - 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, - 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, - 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, - 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, - 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x42, 0x2e, 0x5a, - 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, - 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x32, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, + 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, + 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, + 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x12, 0x66, 0x0a, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, + 0x61, 0x52, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x63, 0x0a, 0x18, 0x62, + 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x22, 0x85, 0x06, 0x0a, 0x1f, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x43, 0x61, 0x70, 0x65, 0x6c, + 0x6c, 0x61, 0x56, 0x32, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, + 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, + 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, + 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, + 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, + 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, + 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, + 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, + 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, + 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, + 0x45, 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, + 0x65, 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, + 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x68, 0x0a, 0x18, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, 0x56, 0x32, 0x52, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x12, 0x63, 0x0a, 0x18, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, + 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, + 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0xac, 0x04, 0x0a, 0x15, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x41, 0x6c, 0x74, 0x61, + 0x69, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, + 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, + 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, + 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, + 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, + 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, + 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, + 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, + 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, + 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, + 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x22, 0xae, 0x04, 0x0a, 0x17, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x41, 0x6c, 0x74, 0x61, 0x69, + 0x72, 0x56, 0x32, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x72, 0x65, + 0x76, 0x65, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, + 0x61, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x09, 0x65, 0x74, 0x68, + 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, + 0x0a, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x67, 0x72, 0x61, 0x66, 0x66, 0x69, 0x74, 0x69, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, + 0x73, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, + 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x61, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, + 0x68, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, + 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, + 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, + 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, + 0x78, 0x69, 0x74, 0x52, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, + 0x78, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, + 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -4742,8 +4780,10 @@ var file_pkg_proto_eth_v2_beacon_block_proto_goTypes = []any{ (*v1.ExecutionPayloadElectra)(nil), // 58: xatu.eth.v1.ExecutionPayloadElectra (*v1.ElectraExecutionRequests)(nil), // 59: xatu.eth.v1.ElectraExecutionRequests (*v1.ExecutionPayloadGloas)(nil), // 60: xatu.eth.v1.ExecutionPayloadGloas - (*v1.ExecutionPayloadHeaderCapella)(nil), // 61: xatu.eth.v1.ExecutionPayloadHeaderCapella - (*v1.ExecutionPayloadHeaderCapellaV2)(nil), // 62: xatu.eth.v1.ExecutionPayloadHeaderCapellaV2 + (*v1.SignedExecutionPayloadBid)(nil), // 61: xatu.eth.v1.SignedExecutionPayloadBid + (*v1.PayloadAttestation)(nil), // 62: xatu.eth.v1.PayloadAttestation + (*v1.ExecutionPayloadHeaderCapella)(nil), // 63: xatu.eth.v1.ExecutionPayloadHeaderCapella + (*v1.ExecutionPayloadHeaderCapellaV2)(nil), // 64: xatu.eth.v1.ExecutionPayloadHeaderCapellaV2 } var file_pkg_proto_eth_v2_beacon_block_proto_depIdxs = []int32{ 14, // 0: xatu.eth.v2.SignedBeaconBlockBellatrix.message:type_name -> xatu.eth.v2.BeaconBlockBellatrix @@ -4881,43 +4921,45 @@ var file_pkg_proto_eth_v2_beacon_block_proto_depIdxs = []int32{ 60, // 132: xatu.eth.v2.BeaconBlockBodyGloas.execution_payload:type_name -> xatu.eth.v1.ExecutionPayloadGloas 55, // 133: xatu.eth.v2.BeaconBlockBodyGloas.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange 59, // 134: xatu.eth.v2.BeaconBlockBodyGloas.execution_requests:type_name -> xatu.eth.v1.ElectraExecutionRequests - 43, // 135: xatu.eth.v2.BlindedBeaconBlockBodyCapella.eth1_data:type_name -> xatu.eth.v1.Eth1Data - 44, // 136: xatu.eth.v2.BlindedBeaconBlockBodyCapella.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing - 45, // 137: xatu.eth.v2.BlindedBeaconBlockBodyCapella.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing - 46, // 138: xatu.eth.v2.BlindedBeaconBlockBodyCapella.attestations:type_name -> xatu.eth.v1.Attestation - 47, // 139: xatu.eth.v2.BlindedBeaconBlockBodyCapella.deposits:type_name -> xatu.eth.v1.Deposit - 48, // 140: xatu.eth.v2.BlindedBeaconBlockBodyCapella.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit - 49, // 141: xatu.eth.v2.BlindedBeaconBlockBodyCapella.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate - 61, // 142: xatu.eth.v2.BlindedBeaconBlockBodyCapella.execution_payload_header:type_name -> xatu.eth.v1.ExecutionPayloadHeaderCapella - 55, // 143: xatu.eth.v2.BlindedBeaconBlockBodyCapella.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange - 43, // 144: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.eth1_data:type_name -> xatu.eth.v1.Eth1Data - 44, // 145: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing - 45, // 146: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing - 46, // 147: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.attestations:type_name -> xatu.eth.v1.Attestation - 47, // 148: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.deposits:type_name -> xatu.eth.v1.Deposit - 48, // 149: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit - 49, // 150: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate - 62, // 151: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.execution_payload_header:type_name -> xatu.eth.v1.ExecutionPayloadHeaderCapellaV2 - 55, // 152: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange - 43, // 153: xatu.eth.v2.BeaconBlockBodyAltair.eth1_data:type_name -> xatu.eth.v1.Eth1Data - 44, // 154: xatu.eth.v2.BeaconBlockBodyAltair.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing - 45, // 155: xatu.eth.v2.BeaconBlockBodyAltair.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing - 46, // 156: xatu.eth.v2.BeaconBlockBodyAltair.attestations:type_name -> xatu.eth.v1.Attestation - 47, // 157: xatu.eth.v2.BeaconBlockBodyAltair.deposits:type_name -> xatu.eth.v1.Deposit - 48, // 158: xatu.eth.v2.BeaconBlockBodyAltair.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit - 49, // 159: xatu.eth.v2.BeaconBlockBodyAltair.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate - 43, // 160: xatu.eth.v2.BeaconBlockBodyAltairV2.eth1_data:type_name -> xatu.eth.v1.Eth1Data - 44, // 161: xatu.eth.v2.BeaconBlockBodyAltairV2.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing - 45, // 162: xatu.eth.v2.BeaconBlockBodyAltairV2.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing - 46, // 163: xatu.eth.v2.BeaconBlockBodyAltairV2.attestations:type_name -> xatu.eth.v1.Attestation - 47, // 164: xatu.eth.v2.BeaconBlockBodyAltairV2.deposits:type_name -> xatu.eth.v1.Deposit - 48, // 165: xatu.eth.v2.BeaconBlockBodyAltairV2.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit - 49, // 166: xatu.eth.v2.BeaconBlockBodyAltairV2.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate - 167, // [167:167] is the sub-list for method output_type - 167, // [167:167] is the sub-list for method input_type - 167, // [167:167] is the sub-list for extension type_name - 167, // [167:167] is the sub-list for extension extendee - 0, // [0:167] is the sub-list for field type_name + 61, // 135: xatu.eth.v2.BeaconBlockBodyGloas.signed_execution_payload_bid:type_name -> xatu.eth.v1.SignedExecutionPayloadBid + 62, // 136: xatu.eth.v2.BeaconBlockBodyGloas.payload_attestations:type_name -> xatu.eth.v1.PayloadAttestation + 43, // 137: xatu.eth.v2.BlindedBeaconBlockBodyCapella.eth1_data:type_name -> xatu.eth.v1.Eth1Data + 44, // 138: xatu.eth.v2.BlindedBeaconBlockBodyCapella.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing + 45, // 139: xatu.eth.v2.BlindedBeaconBlockBodyCapella.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing + 46, // 140: xatu.eth.v2.BlindedBeaconBlockBodyCapella.attestations:type_name -> xatu.eth.v1.Attestation + 47, // 141: xatu.eth.v2.BlindedBeaconBlockBodyCapella.deposits:type_name -> xatu.eth.v1.Deposit + 48, // 142: xatu.eth.v2.BlindedBeaconBlockBodyCapella.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit + 49, // 143: xatu.eth.v2.BlindedBeaconBlockBodyCapella.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate + 63, // 144: xatu.eth.v2.BlindedBeaconBlockBodyCapella.execution_payload_header:type_name -> xatu.eth.v1.ExecutionPayloadHeaderCapella + 55, // 145: xatu.eth.v2.BlindedBeaconBlockBodyCapella.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange + 43, // 146: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.eth1_data:type_name -> xatu.eth.v1.Eth1Data + 44, // 147: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing + 45, // 148: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing + 46, // 149: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.attestations:type_name -> xatu.eth.v1.Attestation + 47, // 150: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.deposits:type_name -> xatu.eth.v1.Deposit + 48, // 151: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit + 49, // 152: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate + 64, // 153: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.execution_payload_header:type_name -> xatu.eth.v1.ExecutionPayloadHeaderCapellaV2 + 55, // 154: xatu.eth.v2.BlindedBeaconBlockBodyCapellaV2.bls_to_execution_changes:type_name -> xatu.eth.v2.SignedBLSToExecutionChange + 43, // 155: xatu.eth.v2.BeaconBlockBodyAltair.eth1_data:type_name -> xatu.eth.v1.Eth1Data + 44, // 156: xatu.eth.v2.BeaconBlockBodyAltair.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing + 45, // 157: xatu.eth.v2.BeaconBlockBodyAltair.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing + 46, // 158: xatu.eth.v2.BeaconBlockBodyAltair.attestations:type_name -> xatu.eth.v1.Attestation + 47, // 159: xatu.eth.v2.BeaconBlockBodyAltair.deposits:type_name -> xatu.eth.v1.Deposit + 48, // 160: xatu.eth.v2.BeaconBlockBodyAltair.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit + 49, // 161: xatu.eth.v2.BeaconBlockBodyAltair.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate + 43, // 162: xatu.eth.v2.BeaconBlockBodyAltairV2.eth1_data:type_name -> xatu.eth.v1.Eth1Data + 44, // 163: xatu.eth.v2.BeaconBlockBodyAltairV2.proposer_slashings:type_name -> xatu.eth.v1.ProposerSlashing + 45, // 164: xatu.eth.v2.BeaconBlockBodyAltairV2.attester_slashings:type_name -> xatu.eth.v1.AttesterSlashing + 46, // 165: xatu.eth.v2.BeaconBlockBodyAltairV2.attestations:type_name -> xatu.eth.v1.Attestation + 47, // 166: xatu.eth.v2.BeaconBlockBodyAltairV2.deposits:type_name -> xatu.eth.v1.Deposit + 48, // 167: xatu.eth.v2.BeaconBlockBodyAltairV2.voluntary_exits:type_name -> xatu.eth.v1.SignedVoluntaryExit + 49, // 168: xatu.eth.v2.BeaconBlockBodyAltairV2.sync_aggregate:type_name -> xatu.eth.v1.SyncAggregate + 169, // [169:169] is the sub-list for method output_type + 169, // [169:169] is the sub-list for method input_type + 169, // [169:169] is the sub-list for extension type_name + 169, // [169:169] is the sub-list for extension extendee + 0, // [0:169] is the sub-list for field type_name } func init() { file_pkg_proto_eth_v2_beacon_block_proto_init() } diff --git a/pkg/proto/eth/v2/beacon_block.proto b/pkg/proto/eth/v2/beacon_block.proto index 2c99b4e33..5bf3db234 100644 --- a/pkg/proto/eth/v2/beacon_block.proto +++ b/pkg/proto/eth/v2/beacon_block.proto @@ -562,19 +562,26 @@ message BeaconBlockBodyGloas { v1.SyncAggregate sync_aggregate = 9 [ json_name = "sync_aggregate" ]; - // EIP-7732: execution_payload, blob_kzg_commitments, and - // execution_requests moved to ExecutionPayloadEnvelope. - reserved 10, 12, 13; - reserved "execution_payload", "blob_kzg_commitments", "execution_requests"; + // Pre-ePBS: execution payload inline in block body. + v1.ExecutionPayloadGloas execution_payload = 10 + [ json_name = "execution_payload" ]; repeated SignedBLSToExecutionChange bls_to_execution_changes = 11 [ json_name = "bls_to_execution_changes" ]; - // EIP-7732: Builder's bid replaces inline execution payload. + // Pre-ePBS: blob KZG commitments inline in block body. + repeated string blob_kzg_commitments = 12 + [ json_name = "blob_kzg_commitments" ]; + + // Pre-ePBS: execution requests inline in block body. + v1.ElectraExecutionRequests execution_requests = 13 + [ json_name = "execution_requests" ]; + + // EIP-7732 ePBS: Builder's bid (replaces execution_payload when ePBS is active). v1.SignedExecutionPayloadBid signed_execution_payload_bid = 14 [ json_name = "signed_execution_payload_bid" ]; - // EIP-7732: Aggregated PTC attestations (max 4 per block). + // EIP-7732 ePBS: Aggregated PTC attestations (max 4 per block). repeated v1.PayloadAttestation payload_attestations = 15 [ json_name = "payload_attestations" ]; } diff --git a/pkg/proto/libp2p/gossipsub/eth.pb.go b/pkg/proto/libp2p/gossipsub/eth.pb.go index 252c3a8d9..0f2e550a1 100644 --- a/pkg/proto/libp2p/gossipsub/eth.pb.go +++ b/pkg/proto/libp2p/gossipsub/eth.pb.go @@ -266,6 +266,354 @@ func (x *DataColumnSidecar) GetBlockRoot() *wrapperspb.StringValue { return nil } +// ExecutionPayloadEnvelope is a summary of a SignedExecutionPayloadEnvelope +// received on the execution_payload gossipsub topic. +type ExecutionPayloadEnvelope struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Slot *wrapperspb.UInt64Value `protobuf:"bytes,1,opt,name=slot,proto3" json:"slot,omitempty"` + BuilderIndex *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=builder_index,proto3" json:"builder_index,omitempty"` + BeaconBlockRoot *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=beacon_block_root,proto3" json:"beacon_block_root,omitempty"` + BlockHash *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=block_hash,proto3" json:"block_hash,omitempty"` + StateRoot *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=state_root,proto3" json:"state_root,omitempty"` +} + +func (x *ExecutionPayloadEnvelope) Reset() { + *x = ExecutionPayloadEnvelope{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_libp2p_gossipsub_eth_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutionPayloadEnvelope) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutionPayloadEnvelope) ProtoMessage() {} + +func (x *ExecutionPayloadEnvelope) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_libp2p_gossipsub_eth_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 ExecutionPayloadEnvelope.ProtoReflect.Descriptor instead. +func (*ExecutionPayloadEnvelope) Descriptor() ([]byte, []int) { + return file_pkg_proto_libp2p_gossipsub_eth_proto_rawDescGZIP(), []int{3} +} + +func (x *ExecutionPayloadEnvelope) GetSlot() *wrapperspb.UInt64Value { + if x != nil { + return x.Slot + } + return nil +} + +func (x *ExecutionPayloadEnvelope) GetBuilderIndex() *wrapperspb.UInt64Value { + if x != nil { + return x.BuilderIndex + } + return nil +} + +func (x *ExecutionPayloadEnvelope) GetBeaconBlockRoot() *wrapperspb.StringValue { + if x != nil { + return x.BeaconBlockRoot + } + return nil +} + +func (x *ExecutionPayloadEnvelope) GetBlockHash() *wrapperspb.StringValue { + if x != nil { + return x.BlockHash + } + return nil +} + +func (x *ExecutionPayloadEnvelope) GetStateRoot() *wrapperspb.StringValue { + if x != nil { + return x.StateRoot + } + return nil +} + +// ExecutionPayloadBid is a summary of a SignedExecutionPayloadBid +// received on the execution_payload_bid gossipsub topic. +type ExecutionPayloadBid struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Slot *wrapperspb.UInt64Value `protobuf:"bytes,1,opt,name=slot,proto3" json:"slot,omitempty"` + BuilderIndex *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=builder_index,proto3" json:"builder_index,omitempty"` + BlockHash *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=block_hash,proto3" json:"block_hash,omitempty"` + ParentBlockHash *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=parent_block_hash,proto3" json:"parent_block_hash,omitempty"` + Value *wrapperspb.UInt64Value `protobuf:"bytes,5,opt,name=value,proto3" json:"value,omitempty"` + ExecutionPayment *wrapperspb.UInt64Value `protobuf:"bytes,6,opt,name=execution_payment,proto3" json:"execution_payment,omitempty"` + FeeRecipient *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=fee_recipient,proto3" json:"fee_recipient,omitempty"` + GasLimit *wrapperspb.UInt64Value `protobuf:"bytes,8,opt,name=gas_limit,proto3" json:"gas_limit,omitempty"` + BlobKzgCommitmentCount *wrapperspb.UInt32Value `protobuf:"bytes,9,opt,name=blob_kzg_commitment_count,proto3" json:"blob_kzg_commitment_count,omitempty"` +} + +func (x *ExecutionPayloadBid) Reset() { + *x = ExecutionPayloadBid{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_libp2p_gossipsub_eth_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutionPayloadBid) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutionPayloadBid) ProtoMessage() {} + +func (x *ExecutionPayloadBid) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_libp2p_gossipsub_eth_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 ExecutionPayloadBid.ProtoReflect.Descriptor instead. +func (*ExecutionPayloadBid) Descriptor() ([]byte, []int) { + return file_pkg_proto_libp2p_gossipsub_eth_proto_rawDescGZIP(), []int{4} +} + +func (x *ExecutionPayloadBid) GetSlot() *wrapperspb.UInt64Value { + if x != nil { + return x.Slot + } + return nil +} + +func (x *ExecutionPayloadBid) GetBuilderIndex() *wrapperspb.UInt64Value { + if x != nil { + return x.BuilderIndex + } + return nil +} + +func (x *ExecutionPayloadBid) GetBlockHash() *wrapperspb.StringValue { + if x != nil { + return x.BlockHash + } + return nil +} + +func (x *ExecutionPayloadBid) GetParentBlockHash() *wrapperspb.StringValue { + if x != nil { + return x.ParentBlockHash + } + return nil +} + +func (x *ExecutionPayloadBid) GetValue() *wrapperspb.UInt64Value { + if x != nil { + return x.Value + } + return nil +} + +func (x *ExecutionPayloadBid) GetExecutionPayment() *wrapperspb.UInt64Value { + if x != nil { + return x.ExecutionPayment + } + return nil +} + +func (x *ExecutionPayloadBid) GetFeeRecipient() *wrapperspb.StringValue { + if x != nil { + return x.FeeRecipient + } + return nil +} + +func (x *ExecutionPayloadBid) GetGasLimit() *wrapperspb.UInt64Value { + if x != nil { + return x.GasLimit + } + return nil +} + +func (x *ExecutionPayloadBid) GetBlobKzgCommitmentCount() *wrapperspb.UInt32Value { + if x != nil { + return x.BlobKzgCommitmentCount + } + return nil +} + +// PayloadAttestationMessage is a summary of a PayloadAttestationMessage +// received on the payload_attestation_message gossipsub topic. +type PayloadAttestationMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Slot *wrapperspb.UInt64Value `protobuf:"bytes,1,opt,name=slot,proto3" json:"slot,omitempty"` + ValidatorIndex *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=validator_index,proto3" json:"validator_index,omitempty"` + BeaconBlockRoot *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=beacon_block_root,proto3" json:"beacon_block_root,omitempty"` + PayloadPresent *wrapperspb.BoolValue `protobuf:"bytes,4,opt,name=payload_present,proto3" json:"payload_present,omitempty"` + BlobDataAvailable *wrapperspb.BoolValue `protobuf:"bytes,5,opt,name=blob_data_available,proto3" json:"blob_data_available,omitempty"` +} + +func (x *PayloadAttestationMessage) Reset() { + *x = PayloadAttestationMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_libp2p_gossipsub_eth_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PayloadAttestationMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PayloadAttestationMessage) ProtoMessage() {} + +func (x *PayloadAttestationMessage) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_libp2p_gossipsub_eth_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 PayloadAttestationMessage.ProtoReflect.Descriptor instead. +func (*PayloadAttestationMessage) Descriptor() ([]byte, []int) { + return file_pkg_proto_libp2p_gossipsub_eth_proto_rawDescGZIP(), []int{5} +} + +func (x *PayloadAttestationMessage) GetSlot() *wrapperspb.UInt64Value { + if x != nil { + return x.Slot + } + return nil +} + +func (x *PayloadAttestationMessage) GetValidatorIndex() *wrapperspb.UInt64Value { + if x != nil { + return x.ValidatorIndex + } + return nil +} + +func (x *PayloadAttestationMessage) GetBeaconBlockRoot() *wrapperspb.StringValue { + if x != nil { + return x.BeaconBlockRoot + } + return nil +} + +func (x *PayloadAttestationMessage) GetPayloadPresent() *wrapperspb.BoolValue { + if x != nil { + return x.PayloadPresent + } + return nil +} + +func (x *PayloadAttestationMessage) GetBlobDataAvailable() *wrapperspb.BoolValue { + if x != nil { + return x.BlobDataAvailable + } + return nil +} + +// ProposerPreferences is a summary of a SignedProposerPreferences +// received on the proposer_preferences gossipsub topic. +type ProposerPreferences struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Slot *wrapperspb.UInt64Value `protobuf:"bytes,1,opt,name=slot,proto3" json:"slot,omitempty"` + ValidatorIndex *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=validator_index,proto3" json:"validator_index,omitempty"` + FeeRecipient *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=fee_recipient,proto3" json:"fee_recipient,omitempty"` + GasLimit *wrapperspb.UInt64Value `protobuf:"bytes,4,opt,name=gas_limit,proto3" json:"gas_limit,omitempty"` +} + +func (x *ProposerPreferences) Reset() { + *x = ProposerPreferences{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_libp2p_gossipsub_eth_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProposerPreferences) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProposerPreferences) ProtoMessage() {} + +func (x *ProposerPreferences) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_libp2p_gossipsub_eth_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 ProposerPreferences.ProtoReflect.Descriptor instead. +func (*ProposerPreferences) Descriptor() ([]byte, []int) { + return file_pkg_proto_libp2p_gossipsub_eth_proto_rawDescGZIP(), []int{6} +} + +func (x *ProposerPreferences) GetSlot() *wrapperspb.UInt64Value { + if x != nil { + return x.Slot + } + return nil +} + +func (x *ProposerPreferences) GetValidatorIndex() *wrapperspb.UInt64Value { + if x != nil { + return x.ValidatorIndex + } + return nil +} + +func (x *ProposerPreferences) GetFeeRecipient() *wrapperspb.StringValue { + if x != nil { + return x.FeeRecipient + } + return nil +} + +func (x *ProposerPreferences) GetGasLimit() *wrapperspb.UInt64Value { + if x != nil { + return x.GasLimit + } + return nil +} + var File_pkg_proto_libp2p_gossipsub_eth_proto protoreflect.FileDescriptor var file_pkg_proto_libp2p_gossipsub_eth_proto_rawDesc = []byte{ @@ -339,11 +687,113 @@ var file_pkg_proto_libp2p_gossipsub_eth_proto_rawDesc = []byte{ 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x42, 0x38, 0x5a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, - 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2f, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, - 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x22, 0xd8, 0x02, 0x0a, 0x18, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x76, 0x65, + 0x6c, 0x6f, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, + 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x62, 0x75, 0x69, + 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4a, 0x0a, 0x11, 0x62, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x11, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, + 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, + 0x6f, 0x74, 0x22, 0xf1, 0x04, 0x0a, 0x13, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x42, 0x0a, 0x0d, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x4a, + 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4a, + 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x66, 0x65, + 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x3a, + 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x5a, 0x0a, 0x19, 0x62, 0x6c, + 0x6f, 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x19, 0x62, 0x6c, 0x6f, + 0x62, 0x5f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf5, 0x02, 0x0a, 0x19, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x46, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4a, + 0x0a, 0x11, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0f, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, + 0x12, 0x4c, 0x0a, 0x13, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x62, 0x6c, 0x6f, 0x62, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x8f, + 0x02, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x46, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x42, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, + 0x69, 0x65, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x42, 0x38, 0x5a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, + 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, + 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x2f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -358,37 +808,65 @@ func file_pkg_proto_libp2p_gossipsub_eth_proto_rawDescGZIP() []byte { return file_pkg_proto_libp2p_gossipsub_eth_proto_rawDescData } -var file_pkg_proto_libp2p_gossipsub_eth_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_pkg_proto_libp2p_gossipsub_eth_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_pkg_proto_libp2p_gossipsub_eth_proto_goTypes = []any{ - (*BeaconBlock)(nil), // 0: xatu.libp2p.gossipsub.eth.BeaconBlock - (*BlobSidecar)(nil), // 1: xatu.libp2p.gossipsub.eth.BlobSidecar - (*DataColumnSidecar)(nil), // 2: xatu.libp2p.gossipsub.eth.DataColumnSidecar - (*wrapperspb.StringValue)(nil), // 3: google.protobuf.StringValue - (*wrapperspb.UInt64Value)(nil), // 4: google.protobuf.UInt64Value - (*wrapperspb.UInt32Value)(nil), // 5: google.protobuf.UInt32Value + (*BeaconBlock)(nil), // 0: xatu.libp2p.gossipsub.eth.BeaconBlock + (*BlobSidecar)(nil), // 1: xatu.libp2p.gossipsub.eth.BlobSidecar + (*DataColumnSidecar)(nil), // 2: xatu.libp2p.gossipsub.eth.DataColumnSidecar + (*ExecutionPayloadEnvelope)(nil), // 3: xatu.libp2p.gossipsub.eth.ExecutionPayloadEnvelope + (*ExecutionPayloadBid)(nil), // 4: xatu.libp2p.gossipsub.eth.ExecutionPayloadBid + (*PayloadAttestationMessage)(nil), // 5: xatu.libp2p.gossipsub.eth.PayloadAttestationMessage + (*ProposerPreferences)(nil), // 6: xatu.libp2p.gossipsub.eth.ProposerPreferences + (*wrapperspb.StringValue)(nil), // 7: google.protobuf.StringValue + (*wrapperspb.UInt64Value)(nil), // 8: google.protobuf.UInt64Value + (*wrapperspb.UInt32Value)(nil), // 9: google.protobuf.UInt32Value + (*wrapperspb.BoolValue)(nil), // 10: google.protobuf.BoolValue } var file_pkg_proto_libp2p_gossipsub_eth_proto_depIdxs = []int32{ - 3, // 0: xatu.libp2p.gossipsub.eth.BeaconBlock.block:type_name -> google.protobuf.StringValue - 4, // 1: xatu.libp2p.gossipsub.eth.BeaconBlock.slot:type_name -> google.protobuf.UInt64Value - 4, // 2: xatu.libp2p.gossipsub.eth.BeaconBlock.proposer_index:type_name -> google.protobuf.UInt64Value - 4, // 3: xatu.libp2p.gossipsub.eth.BlobSidecar.index:type_name -> google.protobuf.UInt64Value - 4, // 4: xatu.libp2p.gossipsub.eth.BlobSidecar.slot:type_name -> google.protobuf.UInt64Value - 4, // 5: xatu.libp2p.gossipsub.eth.BlobSidecar.proposer_index:type_name -> google.protobuf.UInt64Value - 3, // 6: xatu.libp2p.gossipsub.eth.BlobSidecar.state_root:type_name -> google.protobuf.StringValue - 3, // 7: xatu.libp2p.gossipsub.eth.BlobSidecar.parent_root:type_name -> google.protobuf.StringValue - 3, // 8: xatu.libp2p.gossipsub.eth.BlobSidecar.block_root:type_name -> google.protobuf.StringValue - 4, // 9: xatu.libp2p.gossipsub.eth.DataColumnSidecar.index:type_name -> google.protobuf.UInt64Value - 4, // 10: xatu.libp2p.gossipsub.eth.DataColumnSidecar.slot:type_name -> google.protobuf.UInt64Value - 4, // 11: xatu.libp2p.gossipsub.eth.DataColumnSidecar.proposer_index:type_name -> google.protobuf.UInt64Value - 3, // 12: xatu.libp2p.gossipsub.eth.DataColumnSidecar.state_root:type_name -> google.protobuf.StringValue - 3, // 13: xatu.libp2p.gossipsub.eth.DataColumnSidecar.parent_root:type_name -> google.protobuf.StringValue - 5, // 14: xatu.libp2p.gossipsub.eth.DataColumnSidecar.kzg_commitments_count:type_name -> google.protobuf.UInt32Value - 3, // 15: xatu.libp2p.gossipsub.eth.DataColumnSidecar.block_root:type_name -> google.protobuf.StringValue - 16, // [16:16] is the sub-list for method output_type - 16, // [16:16] is the sub-list for method input_type - 16, // [16:16] is the sub-list for extension type_name - 16, // [16:16] is the sub-list for extension extendee - 0, // [0:16] is the sub-list for field type_name + 7, // 0: xatu.libp2p.gossipsub.eth.BeaconBlock.block:type_name -> google.protobuf.StringValue + 8, // 1: xatu.libp2p.gossipsub.eth.BeaconBlock.slot:type_name -> google.protobuf.UInt64Value + 8, // 2: xatu.libp2p.gossipsub.eth.BeaconBlock.proposer_index:type_name -> google.protobuf.UInt64Value + 8, // 3: xatu.libp2p.gossipsub.eth.BlobSidecar.index:type_name -> google.protobuf.UInt64Value + 8, // 4: xatu.libp2p.gossipsub.eth.BlobSidecar.slot:type_name -> google.protobuf.UInt64Value + 8, // 5: xatu.libp2p.gossipsub.eth.BlobSidecar.proposer_index:type_name -> google.protobuf.UInt64Value + 7, // 6: xatu.libp2p.gossipsub.eth.BlobSidecar.state_root:type_name -> google.protobuf.StringValue + 7, // 7: xatu.libp2p.gossipsub.eth.BlobSidecar.parent_root:type_name -> google.protobuf.StringValue + 7, // 8: xatu.libp2p.gossipsub.eth.BlobSidecar.block_root:type_name -> google.protobuf.StringValue + 8, // 9: xatu.libp2p.gossipsub.eth.DataColumnSidecar.index:type_name -> google.protobuf.UInt64Value + 8, // 10: xatu.libp2p.gossipsub.eth.DataColumnSidecar.slot:type_name -> google.protobuf.UInt64Value + 8, // 11: xatu.libp2p.gossipsub.eth.DataColumnSidecar.proposer_index:type_name -> google.protobuf.UInt64Value + 7, // 12: xatu.libp2p.gossipsub.eth.DataColumnSidecar.state_root:type_name -> google.protobuf.StringValue + 7, // 13: xatu.libp2p.gossipsub.eth.DataColumnSidecar.parent_root:type_name -> google.protobuf.StringValue + 9, // 14: xatu.libp2p.gossipsub.eth.DataColumnSidecar.kzg_commitments_count:type_name -> google.protobuf.UInt32Value + 7, // 15: xatu.libp2p.gossipsub.eth.DataColumnSidecar.block_root:type_name -> google.protobuf.StringValue + 8, // 16: xatu.libp2p.gossipsub.eth.ExecutionPayloadEnvelope.slot:type_name -> google.protobuf.UInt64Value + 8, // 17: xatu.libp2p.gossipsub.eth.ExecutionPayloadEnvelope.builder_index:type_name -> google.protobuf.UInt64Value + 7, // 18: xatu.libp2p.gossipsub.eth.ExecutionPayloadEnvelope.beacon_block_root:type_name -> google.protobuf.StringValue + 7, // 19: xatu.libp2p.gossipsub.eth.ExecutionPayloadEnvelope.block_hash:type_name -> google.protobuf.StringValue + 7, // 20: xatu.libp2p.gossipsub.eth.ExecutionPayloadEnvelope.state_root:type_name -> google.protobuf.StringValue + 8, // 21: xatu.libp2p.gossipsub.eth.ExecutionPayloadBid.slot:type_name -> google.protobuf.UInt64Value + 8, // 22: xatu.libp2p.gossipsub.eth.ExecutionPayloadBid.builder_index:type_name -> google.protobuf.UInt64Value + 7, // 23: xatu.libp2p.gossipsub.eth.ExecutionPayloadBid.block_hash:type_name -> google.protobuf.StringValue + 7, // 24: xatu.libp2p.gossipsub.eth.ExecutionPayloadBid.parent_block_hash:type_name -> google.protobuf.StringValue + 8, // 25: xatu.libp2p.gossipsub.eth.ExecutionPayloadBid.value:type_name -> google.protobuf.UInt64Value + 8, // 26: xatu.libp2p.gossipsub.eth.ExecutionPayloadBid.execution_payment:type_name -> google.protobuf.UInt64Value + 7, // 27: xatu.libp2p.gossipsub.eth.ExecutionPayloadBid.fee_recipient:type_name -> google.protobuf.StringValue + 8, // 28: xatu.libp2p.gossipsub.eth.ExecutionPayloadBid.gas_limit:type_name -> google.protobuf.UInt64Value + 9, // 29: xatu.libp2p.gossipsub.eth.ExecutionPayloadBid.blob_kzg_commitment_count:type_name -> google.protobuf.UInt32Value + 8, // 30: xatu.libp2p.gossipsub.eth.PayloadAttestationMessage.slot:type_name -> google.protobuf.UInt64Value + 8, // 31: xatu.libp2p.gossipsub.eth.PayloadAttestationMessage.validator_index:type_name -> google.protobuf.UInt64Value + 7, // 32: xatu.libp2p.gossipsub.eth.PayloadAttestationMessage.beacon_block_root:type_name -> google.protobuf.StringValue + 10, // 33: xatu.libp2p.gossipsub.eth.PayloadAttestationMessage.payload_present:type_name -> google.protobuf.BoolValue + 10, // 34: xatu.libp2p.gossipsub.eth.PayloadAttestationMessage.blob_data_available:type_name -> google.protobuf.BoolValue + 8, // 35: xatu.libp2p.gossipsub.eth.ProposerPreferences.slot:type_name -> google.protobuf.UInt64Value + 8, // 36: xatu.libp2p.gossipsub.eth.ProposerPreferences.validator_index:type_name -> google.protobuf.UInt64Value + 7, // 37: xatu.libp2p.gossipsub.eth.ProposerPreferences.fee_recipient:type_name -> google.protobuf.StringValue + 8, // 38: xatu.libp2p.gossipsub.eth.ProposerPreferences.gas_limit:type_name -> google.protobuf.UInt64Value + 39, // [39:39] is the sub-list for method output_type + 39, // [39:39] is the sub-list for method input_type + 39, // [39:39] is the sub-list for extension type_name + 39, // [39:39] is the sub-list for extension extendee + 0, // [0:39] is the sub-list for field type_name } func init() { file_pkg_proto_libp2p_gossipsub_eth_proto_init() } @@ -433,6 +911,54 @@ func file_pkg_proto_libp2p_gossipsub_eth_proto_init() { return nil } } + file_pkg_proto_libp2p_gossipsub_eth_proto_msgTypes[3].Exporter = func(v any, i int) any { + switch v := v.(*ExecutionPayloadEnvelope); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_libp2p_gossipsub_eth_proto_msgTypes[4].Exporter = func(v any, i int) any { + switch v := v.(*ExecutionPayloadBid); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_libp2p_gossipsub_eth_proto_msgTypes[5].Exporter = func(v any, i int) any { + switch v := v.(*PayloadAttestationMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_libp2p_gossipsub_eth_proto_msgTypes[6].Exporter = func(v any, i int) any { + switch v := v.(*ProposerPreferences); 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{ @@ -440,7 +966,7 @@ func file_pkg_proto_libp2p_gossipsub_eth_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pkg_proto_libp2p_gossipsub_eth_proto_rawDesc, NumEnums: 0, - NumMessages: 3, + NumMessages: 7, NumExtensions: 0, NumServices: 0, }, diff --git a/pkg/proto/libp2p/gossipsub/eth.proto b/pkg/proto/libp2p/gossipsub/eth.proto index 2d462428c..a3e708cd3 100644 --- a/pkg/proto/libp2p/gossipsub/eth.proto +++ b/pkg/proto/libp2p/gossipsub/eth.proto @@ -30,3 +30,48 @@ message DataColumnSidecar { google.protobuf.UInt32Value kzg_commitments_count = 6 [json_name = "kzg_commitments_count"]; google.protobuf.StringValue block_root = 7 [json_name = "block_root"]; } + +// EIP-7732 ePBS gossipsub types + +// ExecutionPayloadEnvelope is a summary of a SignedExecutionPayloadEnvelope +// received on the execution_payload gossipsub topic. +message ExecutionPayloadEnvelope { + google.protobuf.UInt64Value slot = 1 [json_name = "slot"]; + google.protobuf.UInt64Value builder_index = 2 [json_name = "builder_index"]; + google.protobuf.StringValue beacon_block_root = 3 [json_name = "beacon_block_root"]; + google.protobuf.StringValue block_hash = 4 [json_name = "block_hash"]; + google.protobuf.StringValue state_root = 5 [json_name = "state_root"]; +} + +// ExecutionPayloadBid is a summary of a SignedExecutionPayloadBid +// received on the execution_payload_bid gossipsub topic. +message ExecutionPayloadBid { + google.protobuf.UInt64Value slot = 1 [json_name = "slot"]; + google.protobuf.UInt64Value builder_index = 2 [json_name = "builder_index"]; + google.protobuf.StringValue block_hash = 3 [json_name = "block_hash"]; + google.protobuf.StringValue parent_block_hash = 4 [json_name = "parent_block_hash"]; + google.protobuf.UInt64Value value = 5 [json_name = "value"]; + google.protobuf.UInt64Value execution_payment = 6 [json_name = "execution_payment"]; + google.protobuf.StringValue fee_recipient = 7 [json_name = "fee_recipient"]; + google.protobuf.UInt64Value gas_limit = 8 [json_name = "gas_limit"]; + google.protobuf.UInt32Value blob_kzg_commitment_count = 9 [json_name = "blob_kzg_commitment_count"]; +} + +// PayloadAttestationMessage is a summary of a PayloadAttestationMessage +// received on the payload_attestation_message gossipsub topic. +message PayloadAttestationMessage { + google.protobuf.UInt64Value slot = 1 [json_name = "slot"]; + google.protobuf.UInt64Value validator_index = 2 [json_name = "validator_index"]; + google.protobuf.StringValue beacon_block_root = 3 [json_name = "beacon_block_root"]; + google.protobuf.BoolValue payload_present = 4 [json_name = "payload_present"]; + google.protobuf.BoolValue blob_data_available = 5 [json_name = "blob_data_available"]; +} + +// ProposerPreferences is a summary of a SignedProposerPreferences +// received on the proposer_preferences gossipsub topic. +message ProposerPreferences { + google.protobuf.UInt64Value slot = 1 [json_name = "slot"]; + google.protobuf.UInt64Value validator_index = 2 [json_name = "validator_index"]; + google.protobuf.StringValue fee_recipient = 3 [json_name = "fee_recipient"]; + google.protobuf.UInt64Value gas_limit = 4 [json_name = "gas_limit"]; +} diff --git a/pkg/proto/xatu/event_ingester.pb.go b/pkg/proto/xatu/event_ingester.pb.go index 6400beef4..5eb46cda1 100644 --- a/pkg/proto/xatu/event_ingester.pb.go +++ b/pkg/proto/xatu/event_ingester.pb.go @@ -173,6 +173,19 @@ const ( Event_EXECUTION_BLOCK_METRICS Event_Name = 87 Event_LIBP2P_TRACE_IDENTIFY Event_Name = 88 Event_BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST Event_Name = 89 + // EIP-7732 ePBS: Sentry SSE events + Event_BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD Event_Name = 90 + Event_BEACON_API_ETH_V1_EVENTS_PAYLOAD_ATTESTATION Event_Name = 91 + Event_BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD_BID Event_Name = 92 + Event_BEACON_API_ETH_V1_EVENTS_PROPOSER_PREFERENCES Event_Name = 93 + // EIP-7732 ePBS: Cannon derived events + Event_BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION Event_Name = 94 + Event_BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID Event_Name = 95 + // EIP-7732 ePBS: P2P gossip events + Event_LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_ENVELOPE Event_Name = 96 + Event_LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_BID Event_Name = 97 + Event_LIBP2P_TRACE_GOSSIPSUB_PAYLOAD_ATTESTATION_MESSAGE Event_Name = 98 + Event_LIBP2P_TRACE_GOSSIPSUB_PROPOSER_PREFERENCES Event_Name = 99 ) // Enum value maps for Event_Name. @@ -267,6 +280,16 @@ var ( 87: "EXECUTION_BLOCK_METRICS", 88: "LIBP2P_TRACE_IDENTIFY", 89: "BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST", + 90: "BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD", + 91: "BEACON_API_ETH_V1_EVENTS_PAYLOAD_ATTESTATION", + 92: "BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD_BID", + 93: "BEACON_API_ETH_V1_EVENTS_PROPOSER_PREFERENCES", + 94: "BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION", + 95: "BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID", + 96: "LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_ENVELOPE", + 97: "LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_BID", + 98: "LIBP2P_TRACE_GOSSIPSUB_PAYLOAD_ATTESTATION_MESSAGE", + 99: "LIBP2P_TRACE_GOSSIPSUB_PROPOSER_PREFERENCES", } Event_Name_value = map[string]int32{ "BEACON_API_ETH_V1_EVENTS_UNKNOWN": 0, @@ -358,6 +381,16 @@ var ( "EXECUTION_BLOCK_METRICS": 87, "LIBP2P_TRACE_IDENTIFY": 88, "BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST": 89, + "BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD": 90, + "BEACON_API_ETH_V1_EVENTS_PAYLOAD_ATTESTATION": 91, + "BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD_BID": 92, + "BEACON_API_ETH_V1_EVENTS_PROPOSER_PREFERENCES": 93, + "BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION": 94, + "BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID": 95, + "LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_ENVELOPE": 96, + "LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_BID": 97, + "LIBP2P_TRACE_GOSSIPSUB_PAYLOAD_ATTESTATION_MESSAGE": 98, + "LIBP2P_TRACE_GOSSIPSUB_PROPOSER_PREFERENCES": 99, } ) @@ -4163,6 +4196,16 @@ type DecoratedEvent struct { // *DecoratedEvent_EthV2BeaconBlockSyncAggregate // *DecoratedEvent_ExecutionBlockMetrics // *DecoratedEvent_EthV2BeaconBlockAccessList + // *DecoratedEvent_EthV1EventsExecutionPayload + // *DecoratedEvent_EthV1EventsPayloadAttestation + // *DecoratedEvent_EthV1EventsExecutionPayloadBid + // *DecoratedEvent_EthV1EventsProposerPreferences + // *DecoratedEvent_EthV2BeaconBlockPayloadAttestation + // *DecoratedEvent_EthV2BeaconBlockExecutionPayloadBid + // *DecoratedEvent_Libp2PTraceGossipsubExecutionPayloadEnvelope + // *DecoratedEvent_Libp2PTraceGossipsubExecutionPayloadBid + // *DecoratedEvent_Libp2PTraceGossipsubPayloadAttestationMessage + // *DecoratedEvent_Libp2PTraceGossipsubProposerPreferences Data isDecoratedEvent_Data `protobuf_oneof:"data"` } @@ -4839,6 +4882,76 @@ func (x *DecoratedEvent) GetEthV2BeaconBlockAccessList() *v1.BlockAccessListChan return nil } +func (x *DecoratedEvent) GetEthV1EventsExecutionPayload() *v1.SignedExecutionPayloadEnvelope { + if x, ok := x.GetData().(*DecoratedEvent_EthV1EventsExecutionPayload); ok { + return x.EthV1EventsExecutionPayload + } + return nil +} + +func (x *DecoratedEvent) GetEthV1EventsPayloadAttestation() *v1.PayloadAttestationMessage { + if x, ok := x.GetData().(*DecoratedEvent_EthV1EventsPayloadAttestation); ok { + return x.EthV1EventsPayloadAttestation + } + return nil +} + +func (x *DecoratedEvent) GetEthV1EventsExecutionPayloadBid() *v1.SignedExecutionPayloadBid { + if x, ok := x.GetData().(*DecoratedEvent_EthV1EventsExecutionPayloadBid); ok { + return x.EthV1EventsExecutionPayloadBid + } + return nil +} + +func (x *DecoratedEvent) GetEthV1EventsProposerPreferences() *v1.SignedProposerPreferences { + if x, ok := x.GetData().(*DecoratedEvent_EthV1EventsProposerPreferences); ok { + return x.EthV1EventsProposerPreferences + } + return nil +} + +func (x *DecoratedEvent) GetEthV2BeaconBlockPayloadAttestation() *v1.PayloadAttestation { + if x, ok := x.GetData().(*DecoratedEvent_EthV2BeaconBlockPayloadAttestation); ok { + return x.EthV2BeaconBlockPayloadAttestation + } + return nil +} + +func (x *DecoratedEvent) GetEthV2BeaconBlockExecutionPayloadBid() *v1.SignedExecutionPayloadBid { + if x, ok := x.GetData().(*DecoratedEvent_EthV2BeaconBlockExecutionPayloadBid); ok { + return x.EthV2BeaconBlockExecutionPayloadBid + } + return nil +} + +func (x *DecoratedEvent) GetLibp2PTraceGossipsubExecutionPayloadEnvelope() *gossipsub.ExecutionPayloadEnvelope { + if x, ok := x.GetData().(*DecoratedEvent_Libp2PTraceGossipsubExecutionPayloadEnvelope); ok { + return x.Libp2PTraceGossipsubExecutionPayloadEnvelope + } + return nil +} + +func (x *DecoratedEvent) GetLibp2PTraceGossipsubExecutionPayloadBid() *gossipsub.ExecutionPayloadBid { + if x, ok := x.GetData().(*DecoratedEvent_Libp2PTraceGossipsubExecutionPayloadBid); ok { + return x.Libp2PTraceGossipsubExecutionPayloadBid + } + return nil +} + +func (x *DecoratedEvent) GetLibp2PTraceGossipsubPayloadAttestationMessage() *gossipsub.PayloadAttestationMessage { + if x, ok := x.GetData().(*DecoratedEvent_Libp2PTraceGossipsubPayloadAttestationMessage); ok { + return x.Libp2PTraceGossipsubPayloadAttestationMessage + } + return nil +} + +func (x *DecoratedEvent) GetLibp2PTraceGossipsubProposerPreferences() *gossipsub.ProposerPreferences { + if x, ok := x.GetData().(*DecoratedEvent_Libp2PTraceGossipsubProposerPreferences); ok { + return x.Libp2PTraceGossipsubProposerPreferences + } + return nil +} + type isDecoratedEvent_Data interface { isDecoratedEvent_Data() } @@ -5204,6 +5317,49 @@ type DecoratedEvent_EthV2BeaconBlockAccessList struct { EthV2BeaconBlockAccessList *v1.BlockAccessListChange `protobuf:"bytes,210,opt,name=eth_v2_beacon_block_access_list,json=BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST,proto3,oneof"` } +type DecoratedEvent_EthV1EventsExecutionPayload struct { + // EIP-7732 ePBS: Sentry SSE events + EthV1EventsExecutionPayload *v1.SignedExecutionPayloadEnvelope `protobuf:"bytes,211,opt,name=eth_v1_events_execution_payload,json=BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD,proto3,oneof"` +} + +type DecoratedEvent_EthV1EventsPayloadAttestation struct { + EthV1EventsPayloadAttestation *v1.PayloadAttestationMessage `protobuf:"bytes,212,opt,name=eth_v1_events_payload_attestation,json=BEACON_API_ETH_V1_EVENTS_PAYLOAD_ATTESTATION,proto3,oneof"` +} + +type DecoratedEvent_EthV1EventsExecutionPayloadBid struct { + EthV1EventsExecutionPayloadBid *v1.SignedExecutionPayloadBid `protobuf:"bytes,213,opt,name=eth_v1_events_execution_payload_bid,json=BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD_BID,proto3,oneof"` +} + +type DecoratedEvent_EthV1EventsProposerPreferences struct { + EthV1EventsProposerPreferences *v1.SignedProposerPreferences `protobuf:"bytes,214,opt,name=eth_v1_events_proposer_preferences,json=BEACON_API_ETH_V1_EVENTS_PROPOSER_PREFERENCES,proto3,oneof"` +} + +type DecoratedEvent_EthV2BeaconBlockPayloadAttestation struct { + // EIP-7732 ePBS: Cannon derived events + EthV2BeaconBlockPayloadAttestation *v1.PayloadAttestation `protobuf:"bytes,215,opt,name=eth_v2_beacon_block_payload_attestation,json=BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION,proto3,oneof"` +} + +type DecoratedEvent_EthV2BeaconBlockExecutionPayloadBid struct { + EthV2BeaconBlockExecutionPayloadBid *v1.SignedExecutionPayloadBid `protobuf:"bytes,216,opt,name=eth_v2_beacon_block_execution_payload_bid,json=BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID,proto3,oneof"` +} + +type DecoratedEvent_Libp2PTraceGossipsubExecutionPayloadEnvelope struct { + // EIP-7732 ePBS: P2P gossip events (use gossipsub summary types) + Libp2PTraceGossipsubExecutionPayloadEnvelope *gossipsub.ExecutionPayloadEnvelope `protobuf:"bytes,217,opt,name=libp2p_trace_gossipsub_execution_payload_envelope,json=LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_ENVELOPE,proto3,oneof"` +} + +type DecoratedEvent_Libp2PTraceGossipsubExecutionPayloadBid struct { + Libp2PTraceGossipsubExecutionPayloadBid *gossipsub.ExecutionPayloadBid `protobuf:"bytes,218,opt,name=libp2p_trace_gossipsub_execution_payload_bid,json=LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_BID,proto3,oneof"` +} + +type DecoratedEvent_Libp2PTraceGossipsubPayloadAttestationMessage struct { + Libp2PTraceGossipsubPayloadAttestationMessage *gossipsub.PayloadAttestationMessage `protobuf:"bytes,219,opt,name=libp2p_trace_gossipsub_payload_attestation_message,json=LIBP2P_TRACE_GOSSIPSUB_PAYLOAD_ATTESTATION_MESSAGE,proto3,oneof"` +} + +type DecoratedEvent_Libp2PTraceGossipsubProposerPreferences struct { + Libp2PTraceGossipsubProposerPreferences *gossipsub.ProposerPreferences `protobuf:"bytes,220,opt,name=libp2p_trace_gossipsub_proposer_preferences,json=LIBP2P_TRACE_GOSSIPSUB_PROPOSER_PREFERENCES,proto3,oneof"` +} + func (*DecoratedEvent_EthV1EventsAttestation) isDecoratedEvent_Data() {} func (*DecoratedEvent_EthV1EventsBlock) isDecoratedEvent_Data() {} @@ -5378,6 +5534,26 @@ func (*DecoratedEvent_ExecutionBlockMetrics) isDecoratedEvent_Data() {} func (*DecoratedEvent_EthV2BeaconBlockAccessList) isDecoratedEvent_Data() {} +func (*DecoratedEvent_EthV1EventsExecutionPayload) isDecoratedEvent_Data() {} + +func (*DecoratedEvent_EthV1EventsPayloadAttestation) isDecoratedEvent_Data() {} + +func (*DecoratedEvent_EthV1EventsExecutionPayloadBid) isDecoratedEvent_Data() {} + +func (*DecoratedEvent_EthV1EventsProposerPreferences) isDecoratedEvent_Data() {} + +func (*DecoratedEvent_EthV2BeaconBlockPayloadAttestation) isDecoratedEvent_Data() {} + +func (*DecoratedEvent_EthV2BeaconBlockExecutionPayloadBid) isDecoratedEvent_Data() {} + +func (*DecoratedEvent_Libp2PTraceGossipsubExecutionPayloadEnvelope) isDecoratedEvent_Data() {} + +func (*DecoratedEvent_Libp2PTraceGossipsubExecutionPayloadBid) isDecoratedEvent_Data() {} + +func (*DecoratedEvent_Libp2PTraceGossipsubPayloadAttestationMessage) isDecoratedEvent_Data() {} + +func (*DecoratedEvent_Libp2PTraceGossipsubProposerPreferences) isDecoratedEvent_Data() {} + type ClientMeta_Ethereum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -12943,1951 +13119,2059 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x69, 0x74, 0x74, 0x65, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2f, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2f, 0x62, 0x69, 0x64, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, - 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, - 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2f, 0x70, 0x65, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x1c, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x2f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x24, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x2f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2f, 0x65, 0x74, 0x68, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, + 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x2c, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, + 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x31, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, + 0x31, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x5f, 0x65, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x2b, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, + 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1d, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x65, 0x76, 0x72, 0x65, + 0x6c, 0x61, 0x79, 0x2f, 0x62, 0x69, 0x64, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, + 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, + 0x61, 0x79, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, + 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, + 0x61, 0x79, 0x2f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x1b, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x78, 0x61, 0x74, + 0x75, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, + 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x2f, 0x70, 0x65, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x70, 0x6b, 0x67, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2f, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x70, 0x6b, 0x67, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2f, 0x67, 0x6f, 0x73, 0x73, + 0x69, 0x70, 0x73, 0x75, 0x62, 0x2f, 0x65, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x24, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x72, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x73, - 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x70, 0x6b, 0x67, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0x43, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x5e, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, - 0x0a, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x69, 0x6e, - 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x22, 0x65, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, - 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x85, 0x01, - 0x0a, 0x07, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x12, 0x34, 0x0a, 0x06, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2f, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x43, 0x0a, 0x13, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x22, 0x5e, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x22, 0x65, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x44, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x07, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x56, 0x32, 0x12, 0x34, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, + 0x64, 0x0a, 0x04, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x64, 0x0a, 0x04, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x06, - 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x12, 0x34, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x22, 0x30, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, - 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x65, 0x78, 0x74, 0x22, 0x37, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, 0x6c, - 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x22, 0x57, 0x0a, - 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x12, 0x46, - 0x0a, 0x0f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, - 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x22, 0x54, 0x0a, 0x12, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x0f, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, - 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x92, 0x01, 0x0a, - 0x14, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x56, 0x32, 0x12, 0x46, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x32, 0x0a, - 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x22, 0xaa, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x12, 0x2f, 0x0a, 0x06, 0x62, 0x65, - 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x05, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, - 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xb2, - 0x01, 0x0a, 0x16, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x12, 0x31, 0x0a, 0x06, 0x62, 0x65, 0x66, - 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x56, 0x32, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x2f, 0x0a, 0x05, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x56, 0x32, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x12, 0x34, 0x0a, - 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x52, 0x05, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x22, 0x44, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x57, 0x0a, 0x11, 0x53, 0x79, 0x6e, - 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x42, - 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x65, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x65, 0x22, 0xf5, 0x02, 0x0a, 0x11, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x18, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x56, 0x0a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, - 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x73, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x64, 0x12, 0x4a, - 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x6d, 0x69, 0x73, - 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x73, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x12, 0x4e, 0x0a, 0x13, 0x70, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x0f, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x23, - 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, - 0x6f, 0x6f, 0x74, 0x22, 0x82, 0x04, 0x0a, 0x12, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x12, 0x36, 0x0a, 0x16, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x69, 0x65, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x16, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x69, - 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x63, 0x6f, - 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, - 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, - 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2c, - 0x0a, 0x11, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, - 0x64, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x22, 0xf0, 0x06, 0x0a, 0x1c, 0x43, 0x6f, 0x6e, - 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x4e, - 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x06, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, + 0x12, 0x34, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x30, 0x0a, 0x06, + 0x46, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, + 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x22, 0x37, + 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, + 0x0f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x22, 0x57, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x61, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x12, 0x46, 0x0a, 0x0f, 0x73, 0x6c, 0x6f, 0x74, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, - 0x40, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, - 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, - 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x78, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x0f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, + 0x22, 0x54, 0x0a, 0x12, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x74, 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x92, 0x01, 0x0a, 0x14, 0x41, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x12, + 0x46, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, + 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x32, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xaa, 0x01, 0x0a, 0x14, + 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, + 0x65, 0x6f, 0x72, 0x67, 0x12, 0x2f, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x06, 0x62, + 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x05, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, + 0x67, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xb2, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x62, + 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, + 0x67, 0x56, 0x32, 0x12, 0x31, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, 0x32, 0x52, 0x06, + 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x2f, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, 0x32, + 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, + 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x44, 0x0a, + 0x0a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x22, 0x57, 0x0a, 0x11, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x52, 0x0e, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x22, 0xf5, 0x02, 0x0a, + 0x11, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x74, 0x65, 0x65, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x13, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, + 0x62, 0x69, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x18, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x12, 0x56, 0x0a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x64, 0x12, 0x4a, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x6d, 0x69, + 0x73, 0x73, 0x65, 0x64, 0x12, 0x4e, 0x0a, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x0f, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x22, 0x82, 0x04, + 0x0a, 0x12, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, + 0x69, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0c, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x12, 0x36, 0x0a, 0x16, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x65, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x16, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x69, + 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x73, 0x22, 0xf0, 0x06, 0x0a, 0x1c, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, + 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6d, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6c, 0x61, 0x74, - 0x65, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x2a, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xbc, 0x04, 0x0a, 0x1a, - 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, - 0x50, 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x40, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x2c, 0x0a, 0x11, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x46, 0x0a, 0x0f, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x44, - 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xd3, 0x05, 0x0a, 0x19, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4e, 0x65, - 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x38, 0x0a, + 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x67, + 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, + 0x0a, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0a, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, + 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x12, 0x2a, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x26, 0x0a, + 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xbc, 0x04, 0x0a, 0x1a, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, + 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x47, 0x65, 0x74, 0x42, + 0x6c, 0x6f, 0x62, 0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x40, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, - 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, - 0x75, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, - 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, - 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x38, - 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x46, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, + 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, - 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x62, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x62, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, - 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, - 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x2a, 0x0a, 0x10, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x22, 0xb9, 0x04, 0x0a, 0x17, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, - 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x12, 0x2a, 0x0a, 0x06, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xd3, 0x05, 0x0a, 0x19, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3e, + 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x12, 0x3e, + 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x40, + 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x09, + 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x67, + 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, + 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x2a, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x04, 0x0a, 0x17, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6d, 0x73, 0x12, 0x46, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x46, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x15, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x62, + 0x6c, 0x6f, 0x62, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x2a, 0x0a, 0x10, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0e, - 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x15, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, - 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, - 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22, 0x84, 0xf4, 0x01, - 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6d, - 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x72, 0x69, 0x66, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, - 0x72, 0x69, 0x66, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, - 0x6d, 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x12, 0x34, 0x0a, 0x06, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x12, 0x80, 0x01, 0x0a, 0x19, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x24, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6b, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, - 0x44, 0x12, 0x6e, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, - 0x4b, 0x12, 0x88, 0x01, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, - 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x15, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22, 0x84, 0xf4, 0x01, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6d, + 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, + 0x6f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x72, 0x69, 0x66, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0b, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x72, 0x69, 0x66, 0x74, 0x12, 0x35, + 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x52, 0x08, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x65, 0x75, 0x6d, 0x12, 0x34, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, + 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x19, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, + 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6b, + 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, + 0x68, 0x65, 0x61, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x48, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1d, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x12, 0x6e, 0x0a, 0x13, 0x65, + 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, - 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x12, 0x9a, 0x01, 0x0a, - 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, - 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, - 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x12, 0x7f, 0x0a, 0x19, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, - 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x12, 0x9f, 0x01, 0x0a, 0x24, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, - 0x6f, 0x6f, 0x66, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, - 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2f, 0x42, 0x45, 0x41, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x12, 0x65, 0x0a, 0x13, - 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x13, - 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x12, 0x6e, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x12, 0x7c, 0x0a, 0x18, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x64, 0x65, - 0x62, 0x75, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, - 0x45, 0x12, 0x8d, 0x01, 0x0a, 0x1e, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x64, 0x65, 0x62, - 0x75, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, - 0x65, 0x6f, 0x72, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, - 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x4f, 0x72, 0x67, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, - 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, - 0x47, 0x12, 0x7a, 0x0a, 0x17, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x15, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, - 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x22, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, 0x97, 0x01, - 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x56, 0x41, 0x4c, - 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x12, 0x88, 0x01, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, - 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x32, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x56, 0x32, 0x12, 0x73, 0x0a, 0x15, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x76, 0x32, 0x18, 0x19, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x30, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, - 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x65, 0x61, 0x64, 0x56, 0x32, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, - 0x48, 0x45, 0x41, 0x44, 0x5f, 0x56, 0x32, 0x12, 0x76, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, - 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, - 0x32, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x12, - 0x90, 0x01, 0x0a, 0x1f, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, - 0x5f, 0x76, 0x32, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, - 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x5f, - 0x56, 0x32, 0x12, 0xa2, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x32, 0x18, 0x1c, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x88, 0x01, 0x0a, 0x1c, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, + 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, - 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x32, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, - 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, - 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x56, 0x32, 0x12, 0x87, 0x01, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, - 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, - 0x72, 0x65, 0x6f, 0x72, 0x67, 0x5f, 0x76, 0x32, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, - 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, - 0x32, 0x12, 0xa7, 0x01, 0x0a, 0x27, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x76, 0x32, 0x18, 0x1e, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, + 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x27, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, + 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x12, 0x9a, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, + 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, + 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, + 0x49, 0x4e, 0x54, 0x12, 0x7f, 0x0a, 0x19, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x68, + 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x24, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, + 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, + 0x45, 0x4f, 0x52, 0x47, 0x12, 0x9f, 0x01, 0x0a, 0x24, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, - 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, - 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x5f, 0x56, 0x32, 0x12, 0x6d, 0x0a, 0x16, 0x6d, - 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x76, 0x32, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x16, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, - 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x12, 0x76, 0x0a, 0x16, 0x65, 0x74, - 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x76, 0x32, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x44, + 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, + 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, + 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x12, 0x65, 0x0a, 0x13, 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, + 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x13, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, + 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6e, 0x0a, + 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, - 0x56, 0x32, 0x12, 0x84, 0x01, 0x0a, 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x64, 0x65, - 0x62, 0x75, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, - 0x76, 0x32, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, - 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, - 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x56, 0x32, 0x12, 0x95, 0x01, 0x0a, 0x21, 0x65, 0x74, - 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x5f, 0x76, 0x32, 0x18, - 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x4f, 0x72, 0x67, 0x56, 0x32, 0x44, 0x61, 0x74, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1e, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x7c, 0x0a, + 0x18, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x66, 0x6f, + 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, + 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, + 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x12, 0x8d, 0x01, 0x0a, 0x1e, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x66, 0x6f, 0x72, + 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x4f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, + 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, + 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x12, 0x7a, 0x0a, 0x17, 0x65, + 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x22, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, + 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, 0x97, 0x01, 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, + 0x76, 0x31, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, - 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, - 0x32, 0x12, 0xa2, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x23, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, + 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, + 0x41, 0x12, 0x88, 0x01, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x76, 0x32, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, + 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x12, 0x73, 0x0a, 0x15, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x65, + 0x61, 0x64, 0x5f, 0x76, 0x32, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x48, 0x65, 0x61, 0x64, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, + 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x56, + 0x32, 0x12, 0x76, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x32, 0x18, 0x1a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, - 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, - 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0xa2, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, - 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, - 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, - 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, - 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0x99, 0x01, 0x0a, 0x22, - 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, - 0x69, 0x74, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, + 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x12, 0x90, 0x01, 0x0a, 0x1f, 0x65, 0x74, + 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, + 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x76, 0x32, 0x18, 0x1b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, + 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, + 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, + 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x5f, 0x56, 0x32, 0x12, 0xa2, 0x01, 0x0a, + 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, + 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x32, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, + 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, + 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x56, + 0x32, 0x12, 0x87, 0x01, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x5f, + 0x76, 0x32, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, - 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, - 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x12, 0x85, 0x01, 0x0a, 0x1b, 0x65, 0x74, 0x68, 0x5f, - 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, + 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, + 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x12, 0xa7, 0x01, 0x0a, 0x27, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, + 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x76, 0x32, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x12, - 0xb2, 0x01, 0x0a, 0x2b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, - 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, + 0x00, 0x52, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, + 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, + 0x4f, 0x46, 0x5f, 0x56, 0x32, 0x12, 0x6d, 0x0a, 0x16, 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x32, 0x18, + 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x36, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, - 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, - 0x41, 0x4e, 0x47, 0x45, 0x12, 0xae, 0x01, 0x0a, 0x29, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, - 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, - 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x8e, 0x01, 0x0a, 0x1e, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, - 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x77, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, - 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, - 0x44, 0x52, 0x41, 0x57, 0x41, 0x4c, 0x12, 0x82, 0x01, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, - 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, - 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, + 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x4d, 0x45, + 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x56, 0x32, 0x12, 0x76, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x32, 0x18, 0x20, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x12, 0x84, 0x01, 0x0a, + 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x66, 0x6f, + 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x76, 0x32, 0x18, 0x21, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, + 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, + 0x5f, 0x56, 0x32, 0x12, 0x95, 0x01, 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x64, + 0x65, 0x62, 0x75, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x5f, 0x76, 0x32, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, + 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x4f, 0x72, 0x67, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2c, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, + 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, + 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x12, 0xa2, 0x01, 0x0a, 0x25, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, + 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, - 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x82, 0x01, 0x0a, 0x1a, - 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, - 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, + 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x30, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, + 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, + 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, + 0x12, 0xa2, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, - 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, - 0x12, 0x6d, 0x0a, 0x16, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x61, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, - 0x71, 0x0a, 0x14, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x65, 0x72, 0x5f, 0x64, 0x75, 0x74, 0x79, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x1f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, - 0x54, 0x59, 0x12, 0xb1, 0x01, 0x0a, 0x2a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6c, 0x61, 0x62, 0x6f, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, + 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0x99, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, + 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x6f, + 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x25, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, + 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, + 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, + 0x54, 0x12, 0x85, 0x01, 0x0a, 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, - 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, - 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x69, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, - 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, + 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, + 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, + 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x12, 0xb2, 0x01, 0x0a, 0x2b, 0x65, 0x74, + 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x43, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, + 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x4c, 0x53, 0x54, + 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, + 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x12, 0xae, + 0x01, 0x0a, 0x29, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x28, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x12, + 0x8e, 0x01, 0x0a, 0x1e, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, + 0x61, 0x6c, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x44, + 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, 0x4c, + 0x12, 0x82, 0x01, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, + 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x41, 0x64, 0x64, - 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, - 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, - 0x52, 0x12, 0x72, 0x0a, 0x18, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x31, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x18, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, - 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, 0x69, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x76, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x32, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x76, - 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, - 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, 0x52, 0x50, 0x43, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, + 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x25, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, + 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, + 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x82, 0x01, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, + 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x6d, 0x0a, 0x16, 0x62, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, + 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, + 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x71, 0x0a, 0x14, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x31, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x75, 0x74, + 0x79, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x72, 0x44, 0x75, 0x74, 0x79, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x50, + 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x12, 0xb1, 0x01, 0x0a, + 0x2a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2f, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x44, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6c, + 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, + 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x69, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, - 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, - 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x44, 0x61, + 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x5e, 0x0a, 0x11, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, - 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4a, 0x6f, - 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x11, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x12, 0x6d, 0x0a, 0x16, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x77, 0x0a, 0x19, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, + 0x43, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, 0x72, 0x0a, 0x18, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, - 0x54, 0x45, 0x44, 0x12, 0x7e, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, - 0x61, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x18, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, + 0x69, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, + 0x72, 0x65, 0x63, 0x76, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, + 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x69, 0x0a, 0x15, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x5f, + 0x72, 0x70, 0x63, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, - 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, - 0x41, 0x54, 0x41, 0x12, 0x78, 0x0a, 0x1a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, - 0x61, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x65, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, + 0x44, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x5e, 0x0a, 0x11, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x48, 0x00, 0x52, 0x11, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x12, 0x6d, 0x0a, 0x16, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, + 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x45, 0x44, 0x12, 0x77, 0x0a, 0x19, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, + 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, - 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x12, 0x92, 0x01, - 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, - 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, - 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x12, 0xa4, 0x01, 0x0a, 0x29, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, - 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, - 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x29, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, - 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x54, - 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x92, 0x01, 0x0a, 0x23, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, - 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, - 0x72, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, - 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, - 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, - 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, - 0x42, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x70, - 0x0a, 0x11, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x73, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, - 0x12, 0xab, 0x01, 0x0a, 0x2c, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x62, - 0x69, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, - 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x69, 0x64, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x2c, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x49, 0x44, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x12, 0x84, - 0x01, 0x0a, 0x1b, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, 0x3e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x24, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, - 0x53, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x45, 0x4c, 0x49, - 0x56, 0x45, 0x52, 0x45, 0x44, 0x12, 0x77, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x33, 0x5f, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, - 0x41, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, + 0x44, 0x49, 0x53, 0x43, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x7e, 0x0a, + 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x68, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x37, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, + 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, + 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x12, 0x78, 0x0a, + 0x1a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x68, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x38, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1a, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x12, 0x92, 0x01, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, + 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x33, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x33, 0x5f, 0x56, - 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x8a, - 0x01, 0x0a, 0x20, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, + 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0xa4, 0x01, 0x0a, + 0x29, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, + 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x61, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x44, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, + 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x29, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x12, 0x92, 0x01, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, + 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x3b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, + 0x75, 0x62, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x4c, 0x4f, 0x42, + 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x70, 0x0a, 0x11, 0x65, 0x74, 0x68, 0x5f, + 0x76, 0x31, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x3c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x12, 0xab, 0x01, 0x0a, 0x2c, 0x6d, + 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x62, 0x69, 0x64, 0x5f, 0x74, 0x72, 0x61, + 0x63, 0x65, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x3d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x45, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, + 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x69, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x42, 0x75, + 0x69, 0x6c, 0x64, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2c, 0x4d, 0x45, 0x56, 0x5f, + 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x49, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, + 0x42, 0x55, 0x49, 0x4c, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x55, + 0x42, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x12, 0x84, 0x01, 0x0a, 0x1b, 0x6d, 0x65, 0x76, + 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x64, + 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, + 0x6c, 0x61, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, + 0x72, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x24, 0x4d, 0x45, 0x56, 0x5f, 0x52, + 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x41, + 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x12, + 0x77, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x33, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, + 0x33, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, + 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x33, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, + 0x4f, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x8a, 0x01, 0x0a, 0x20, 0x6d, 0x65, 0x76, + 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x42, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x20, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x56, + 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x82, 0x01, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, + 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x67, 0x6f, + 0x73, 0x73, 0x69, 0x70, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x12, 0x69, 0x0a, 0x15, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, + 0x72, 0x70, 0x63, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x20, 0x4d, 0x45, 0x56, 0x5f, 0x52, - 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x52, - 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x82, 0x01, 0x0a, 0x1a, - 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f, 0x73, - 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, - 0x12, 0x69, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, - 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, - 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x50, 0x43, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x61, 0x0a, 0x12, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x76, - 0x65, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, + 0x65, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x52, 0x4f, + 0x50, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x61, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x18, 0x45, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x12, 0x61, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x46, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x72, 0x61, 0x66, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x12, 0x61, 0x0a, 0x12, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x75, 0x6e, + 0x65, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, + 0x72, 0x75, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, + 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x12, 0x84, + 0x01, 0x0a, 0x1e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, + 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4c, - 0x65, 0x61, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, - 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x12, 0x61, - 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, - 0x72, 0x61, 0x66, 0x74, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, + 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, + 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1e, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x45, + 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x7e, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, + 0x61, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x45, + 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x7e, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, + 0x61, 0x63, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, + 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x7b, 0x0a, 0x1b, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x47, 0x72, 0x61, 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x12, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x46, - 0x54, 0x12, 0x61, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, - 0x52, 0x55, 0x4e, 0x45, 0x12, 0x84, 0x01, 0x0a, 0x1e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1e, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, - 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x7e, 0x0a, 0x1c, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x69, - 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x49, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, - 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1c, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x49, - 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x7e, 0x0a, 0x1c, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x4a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, - 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1c, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, - 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x7b, 0x0a, 0x1b, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6a, 0x65, - 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x63, 0x65, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1b, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, + 0x47, 0x45, 0x12, 0x91, 0x01, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x68, 0x61, 0x76, 0x65, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, - 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1b, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, - 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x91, 0x01, 0x0a, 0x23, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, - 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x68, 0x61, 0x76, 0x65, - 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, - 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x48, 0x61, 0x76, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, - 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x48, 0x41, 0x56, 0x45, 0x12, 0x91, 0x01, 0x0a, - 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, - 0x77, 0x61, 0x6e, 0x74, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x49, 0x57, 0x61, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, - 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x57, 0x41, 0x4e, 0x54, - 0x12, 0x9d, 0x01, 0x0a, 0x27, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x6f, 0x6e, 0x74, 0x77, 0x61, 0x6e, 0x74, 0x18, 0x4e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, - 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, - 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x44, 0x6f, 0x6e, 0x74, 0x57, 0x61, 0x6e, - 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x27, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, - 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x44, 0x4f, 0x4e, 0x54, 0x57, 0x41, 0x4e, 0x54, - 0x12, 0x91, 0x01, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x5f, 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, - 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61, 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, - 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x47, - 0x52, 0x41, 0x46, 0x54, 0x12, 0x91, 0x01, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, 0x50, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, - 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, - 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, - 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x12, 0x8f, 0x01, 0x0a, 0x22, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, - 0x74, 0x61, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x51, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, - 0x4d, 0x65, 0x74, 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x22, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x53, 0x55, - 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x80, 0x01, 0x0a, 0x1d, 0x6c, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x48, 0x61, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, + 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, + 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, + 0x5f, 0x49, 0x48, 0x41, 0x56, 0x45, 0x12, 0x91, 0x01, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, + 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x77, 0x61, 0x6e, 0x74, 0x18, 0x4d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, + 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x57, 0x61, 0x6e, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, + 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x57, 0x41, 0x4e, 0x54, 0x12, 0x9d, 0x01, 0x0a, 0x27, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, - 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x52, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, - 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, - 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1d, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, - 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x6a, 0x0a, - 0x15, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6e, - 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x18, 0x53, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, + 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x6f, + 0x6e, 0x74, 0x77, 0x61, 0x6e, 0x74, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, - 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x12, 0xa6, 0x01, 0x0a, 0x2a, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, - 0x70, 0x73, 0x75, 0x62, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x61, - 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x54, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, - 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x41, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x41, - 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, - 0x4f, 0x46, 0x12, 0x96, 0x01, 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, - 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x55, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, - 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2c, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, - 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0xa6, 0x01, 0x0a, 0x2a, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, - 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x56, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x44, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, - 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, - 0x62, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, - 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, - 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, - 0x45, 0x43, 0x41, 0x52, 0x12, 0x8a, 0x01, 0x0a, 0x20, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x5f, - 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x57, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x49, 0x44, 0x6f, 0x6e, 0x74, 0x57, 0x61, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, + 0x00, 0x52, 0x27, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, + 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, + 0x5f, 0x49, 0x44, 0x4f, 0x4e, 0x54, 0x57, 0x41, 0x4e, 0x54, 0x12, 0x91, 0x01, 0x0a, 0x23, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x67, 0x72, 0x61, + 0x66, 0x74, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, + 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, + 0x61, 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, + 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x12, 0x91, + 0x01, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, 0x50, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, + 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x55, + 0x4e, 0x45, 0x12, 0x8f, 0x01, 0x0a, 0x22, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x73, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x51, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, - 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, - 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, - 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, - 0x54, 0x12, 0xa5, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, - 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, - 0x18, 0x58, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, + 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x53, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, + 0x52, 0x22, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, + 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, + 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x80, 0x01, 0x0a, 0x1d, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1d, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, + 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x6a, 0x0a, 0x15, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, + 0x18, 0x53, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x70, - 0x63, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x64, 0x79, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2a, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, - 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, - 0x4f, 0x44, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x12, 0x89, 0x01, 0x0a, 0x20, 0x63, 0x6f, - 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x59, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, - 0x41, 0x50, 0x49, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, - 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, - 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x83, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, - 0x73, 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x67, - 0x65, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, + 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, + 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, + 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, + 0x53, 0x55, 0x53, 0x12, 0xa6, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, + 0x6f, 0x66, 0x18, 0x54, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, + 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, + 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, + 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, + 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x12, 0x96, 0x01, 0x0a, + 0x21, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, + 0x61, 0x72, 0x18, 0x55, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, + 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, + 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0xa6, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x18, 0x56, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x44, 0x61, 0x74, 0x61, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, + 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, + 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x8a, + 0x01, 0x0a, 0x20, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, + 0x73, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, + 0x65, 0x61, 0x74, 0x18, 0x57, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, + 0x65, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, + 0x65, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, + 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x12, 0xa5, 0x01, 0x0a, 0x2a, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x64, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x18, 0x58, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x43, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x70, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x50, 0x72, 0x6f, 0x62, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, + 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x44, 0x59, 0x5f, 0x50, 0x52, + 0x4f, 0x42, 0x45, 0x12, 0x89, 0x01, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, + 0x73, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x65, 0x77, + 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x59, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x73, 0x65, - 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1e, 0x43, 0x4f, 0x4e, - 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x12, 0x6b, 0x0a, 0x12, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, - 0x62, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, - 0x6c, 0x6f, 0x62, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x12, 0x88, 0x01, 0x0a, 0x1c, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x65, 0x77, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x20, 0x43, + 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, + 0x83, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x65, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x6c, 0x6f, + 0x62, 0x73, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1e, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, + 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x47, 0x45, 0x54, 0x5f, + 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x12, 0x6b, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, + 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x18, 0x5b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x44, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x42, 0x12, 0x88, 0x01, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x74, 0x65, 0x65, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x53, + 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, 0x99, 0x01, + 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x65, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, + 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x12, 0x6a, 0x0a, 0x15, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x79, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, + 0x4e, 0x54, 0x49, 0x46, 0x59, 0x12, 0x90, 0x01, 0x0a, 0x1f, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, + 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x39, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, - 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, - 0x54, 0x45, 0x45, 0x12, 0x99, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x79, 0x6e, - 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x12, - 0x6a, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, + 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x43, 0x43, + 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x12, 0x32, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, + 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x40, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0xb5, + 0x04, 0x0a, 0x08, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x12, 0x3b, 0x0a, 0x07, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, + 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x41, 0x0a, 0x09, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x09, 0x63, + 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, - 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x12, 0x90, 0x01, 0x0a, 0x1f, - 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x5f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x12, 0x32, - 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x3f, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x40, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0xb5, 0x04, 0x0a, 0x08, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, - 0x6d, 0x12, 0x3b, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x4e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x41, - 0x0a, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x41, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, - 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x73, 0x65, - 0x6e, 0x73, 0x75, 0x73, 0x1a, 0x2d, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x02, 0x69, 0x64, 0x1a, 0xe7, 0x01, 0x0a, 0x09, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x26, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x49, 0x44, - 0x52, 0x07, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6d, 0x70, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x6a, 0x6f, - 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, - 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x63, 0x68, 0x1a, 0x4d, 0x0a, - 0x09, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6d, - 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x39, 0x0a, 0x0b, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x49, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x1a, 0x4d, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x1a, 0x49, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, - 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, + 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, + 0x73, 0x75, 0x73, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x1a, 0x2d, + 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x1a, 0xe7, 0x01, + 0x0a, 0x09, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x07, 0x66, + 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x6b, + 0x5f, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6d, 0x70, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x6f, + 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x74, + 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x63, 0x68, 0x1a, 0x4d, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x73, 0x65, + 0x6e, 0x73, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6d, + 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x49, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x4d, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x88, 0x03, 0x0a, 0x24, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x4d, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, - 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x13, 0x61, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x96, 0x03, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, - 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, - 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, + 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x49, 0x0a, 0x24, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, + 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x4d, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x88, 0x03, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4d, + 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4d, 0x0a, + 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x04, + 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x21, 0x0a, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, + 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, + 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x13, 0x61, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x1a, 0x96, 0x03, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x06, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, + 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, + 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, + 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x61, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x97, 0x01, 0x0a, 0x1d, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x48, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1e, + 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x33, + 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x1a, 0x9f, 0x01, 0x0a, 0x1f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x65, 0x61, + 0x64, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, + 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, + 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x98, 0x01, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x70, + 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x1a, 0xa0, 0x01, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, + 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, - 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x1a, - 0x97, 0x01, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, - 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, - 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, - 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x9f, 0x01, 0x0a, 0x1f, 0x41, 0x64, + 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, + 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x1a, 0xa4, 0x01, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, + 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x4b, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x48, 0x65, 0x61, 0x64, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, + 0x6e, 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xbe, 0x01, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, + 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, + 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x51, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x55, 0x0a, 0x2e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, - 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, - 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x98, 0x01, 0x0a, 0x1e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, - 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, - 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xa0, 0x01, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, - 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, - 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xa4, 0x01, 0x0a, 0x24, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, - 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, - 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, - 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x1a, 0x4b, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, - 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, - 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, + 0x63, 0x68, 0x1a, 0x9d, 0x01, 0x0a, 0x23, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x68, 0x61, 0x69, + 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xbe, 0x01, - 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, - 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, - 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, - 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, - 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, - 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x51, - 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, - 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, - 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x1a, 0x55, 0x0a, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, - 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x32, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, - 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x9d, 0x01, 0x0a, 0x23, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, - 0x6c, 0x6f, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x6f, - 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xa5, 0x01, 0x0a, 0x25, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, - 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, - 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, - 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x1a, 0xb3, 0x01, 0x0a, 0x39, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, - 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, - 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, - 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xbb, 0x01, 0x0a, 0x3b, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, - 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, - 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, + 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1e, 0x0a, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x9f, 0x01, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, - 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x6e, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x1a, 0xa5, 0x01, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x68, 0x61, 0x69, + 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, + 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xb3, 0x01, 0x0a, 0x39, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xa3, 0x01, 0x0a, 0x2f, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, - 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x70, 0x0a, 0x0c, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x4c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x70, + 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x1a, 0xbb, 0x01, 0x0a, 0x3b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, + 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, + 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x9f, + 0x01, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xad, 0x02, 0x0a, - 0x12, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x12, 0x31, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x2e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x48, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x6e, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, + 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x1a, 0xa3, 0x01, 0x0a, 0x2f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x32, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x70, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, + 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xad, 0x02, 0x0a, 0x12, 0x46, 0x6f, 0x72, 0x6b, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x31, 0x0a, + 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x12, 0x2e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, + 0x6f, 0x74, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, + 0x12, 0x48, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, + 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0xef, 0x02, 0x0a, 0x14, 0x46, 0x6f, 0x72, 0x6b, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x56, 0x32, 0x12, + 0x33, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x12, 0x30, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x66, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, - 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, - 0x12, 0x30, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0xef, 0x02, 0x0a, - 0x14, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x56, 0x32, 0x12, 0x33, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0d, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x30, 0x0a, 0x0c, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0c, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x66, 0x0a, 0x1f, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, - 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, - 0x66, 0x5f, 0x6d, 0x73, 0x12, 0x4e, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, - 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0x65, - 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, - 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x3f, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1f, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x12, 0x4e, + 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x38, + 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0x65, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, + 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3f, + 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x1a, + 0x69, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, + 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x56, 0x32, + 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x1a, 0xa1, 0x01, 0x0a, 0x27, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, + 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x4f, + 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x08, 0x73, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x1a, 0x69, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, - 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, - 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x1a, 0xa1, 0x01, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, - 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x52, 0x65, 0x4f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x06, - 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, + 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x06, 0x62, 0x65, 0x66, + 0x6f, 0x72, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x1a, 0xa7, + 0x01, 0x0a, 0x29, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, + 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x4f, 0x72, 0x67, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x06, + 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x61, 0x66, 0x74, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x05, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x1a, 0xa7, 0x01, 0x0a, 0x29, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, - 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x4f, 0x72, 0x67, 0x56, 0x32, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, - 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x1a, 0x87, - 0x01, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0xa1, 0x01, 0x0a, 0x26, 0x41, 0x64, 0x64, + 0x74, 0x56, 0x32, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, + 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x56, + 0x32, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x1a, 0x87, 0x01, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, - 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x52, 0x0a, 0x15, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, 0xae, 0x01, 0x0a, - 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, - 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x79, 0x6e, 0x63, 0x41, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x52, 0x0a, 0x15, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, - 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, 0xf2, 0x01, - 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x70, - 0x6f, 0x6f, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, - 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x67, 0x61, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x67, 0x61, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x61, - 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x1a, 0x9a, 0x05, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, - 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, - 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, - 0x6f, 0x12, 0x32, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, - 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x03, 0x67, 0x61, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, - 0x67, 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, - 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x74, - 0x69, 0x70, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x61, - 0x73, 0x5f, 0x74, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x61, 0x73, - 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x12, 0x38, 0x0a, 0x08, 0x62, - 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x62, 0x6c, 0x6f, - 0x62, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, - 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, - 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, - 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, - 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x12, 0x3a, 0x0a, 0x18, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, - 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, - 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, - 0x89, 0x02, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, - 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, - 0x2e, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x3a, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x8d, 0x05, 0x0a, 0x20, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, - 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, - 0x74, 0x12, 0x4c, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, + 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, + 0x69, 0x64, 0x1a, 0xa1, 0x01, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, + 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x12, 0x52, 0x0a, 0x15, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x15, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, + 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, 0xae, 0x01, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x12, 0x52, 0x0a, 0x15, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x15, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, + 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, 0xf2, 0x01, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, + 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, + 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, + 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x61, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x67, 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x61, + 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x9a, 0x05, 0x0a, + 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x70, 0x6f, + 0x6f, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, + 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x32, 0x0a, 0x05, 0x6e, + 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, + 0x03, 0x67, 0x61, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x67, 0x61, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, + 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x58, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x6e, 0x0a, 0x23, 0x74, 0x72, 0x61, + 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x70, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x70, 0x5f, + 0x63, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, + 0x61, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, + 0x65, 0x5f, 0x63, 0x61, 0x70, 0x12, 0x38, 0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, + 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x12, + 0x2a, 0x0a, 0x10, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, + 0x63, 0x61, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x6c, 0x6f, 0x62, 0x5f, + 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x62, + 0x6c, 0x6f, 0x62, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x2e, 0x0a, + 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x5f, + 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3a, 0x0a, + 0x18, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x18, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x89, 0x02, 0x0a, 0x1e, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, + 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x16, 0x74, 0x6f, 0x74, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x8d, 0x05, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, + 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x4c, 0x0a, 0x12, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x18, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x12, 0x6e, 0x0a, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x23, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, - 0x3a, 0x0a, 0x18, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x77, 0x68, 0x65, - 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x18, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x77, 0x68, 0x65, - 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x1a, 0x5d, 0x0a, 0x2e, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, - 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x5d, 0x0a, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, - 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x5a, 0x0a, 0x2b, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, - 0x45, 0x78, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x54, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x73, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x18, 0x66, 0x69, 0x6e, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x77, 0x68, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x66, 0x69, 0x6e, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x77, 0x68, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x65, 0x64, 0x1a, 0x5d, 0x0a, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, - 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x61, 0x0a, 0x32, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0xd5, - 0x02, 0x0a, 0x32, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x12, - 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, - 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x61, 0x6c, 0x6c, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x6c, - 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, - 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3a, 0x0a, 0x18, 0x62, 0x6c, - 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, - 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x62, 0x6c, - 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, - 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x57, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x44, 0x61, + 0x6f, 0x63, 0x6b, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, + 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x5d, 0x0a, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, + 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x1a, 0x5a, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, - 0xb7, 0x01, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, - 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, + 0x54, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, + 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x61, 0x0a, 0x32, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0xd5, 0x02, 0x0a, 0x32, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x11, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, + 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3a, 0x0a, 0x18, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x1a, 0x57, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x69, + 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x3f, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x8b, 0x02, 0x0a, 0x17, 0x41, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x66, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1f, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x12, 0x4e, 0x0a, - 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, - 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x38, 0x0a, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0xdc, 0x02, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, - 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x12, 0x44, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x08, 0x73, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x1a, 0xa4, 0x01, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, - 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, - 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xaa, 0x01, - 0x0a, 0x2a, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, - 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, - 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, - 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x99, 0x02, 0x0a, 0x24, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, - 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, - 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x64, 0x61, - 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x46, - 0x0a, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x6d, 0x70, 0x74, - 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0xa9, 0x04, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, - 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, - 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, - 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, - 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, - 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, - 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, - 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x04, 0x70, - 0x65, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, - 0x65, 0x72, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, - 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x1a, 0x84, 0x01, 0x0a, 0x1f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, - 0x74, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, - 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1a, 0x0a, - 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x97, 0x03, 0x0a, 0x33, 0x41, 0x64, + 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0xb7, 0x01, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, - 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x12, 0x3f, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, - 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, + 0x61, 0x73, 0x68, 0x1a, 0x8b, 0x02, 0x0a, 0x17, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, + 0x66, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, + 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, + 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x12, 0x4e, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x1a, 0xdc, 0x02, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x41, 0x64, 0x64, 0x50, - 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, + 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, + 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x08, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x1a, 0xa4, 0x01, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, + 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, + 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, + 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, + 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xaa, 0x01, 0x0a, 0x2a, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, + 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, + 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x99, 0x02, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, + 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, + 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, + 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x12, 0x26, 0x0a, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x46, 0x0a, 0x0f, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x1a, 0xa9, 0x04, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, + 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, + 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, + 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, + 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, + 0x70, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x06, + 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x73, 0x75, 0x62, 0x6e, + 0x65, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x1a, 0x84, 0x01, 0x0a, + 0x1f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, + 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, + 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x5f, 0x69, 0x64, 0x1a, 0x97, 0x03, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, + 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x4f, 0x0a, 0x06, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, + 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x1a, 0x5f, 0x0a, + 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, + 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, + 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x62, + 0x0a, 0x23, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, + 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, + 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x76, 0x52, + 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x64, + 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x1a, 0x62, 0x0a, 0x23, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, - 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, - 0x65, 0x52, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, + 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x72, 0x6f, + 0x70, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, + 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x48, 0x61, 0x76, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, + 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x57, 0x61, 0x6e, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, + 0x6f, 0x0a, 0x30, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x44, 0x6f, 0x6e, 0x74, 0x57, 0x61, 0x6e, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61, 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, + 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, + 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, + 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5c, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, - 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x49, 0x48, 0x61, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, + 0x61, 0x63, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, - 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, - 0x57, 0x61, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x65, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, + 0x47, 0x72, 0x61, 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, + 0x72, 0x75, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6f, 0x0a, 0x30, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, - 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x44, 0x6f, 0x6e, - 0x74, 0x57, 0x61, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x68, 0x0a, 0x29, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, + 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, + 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, + 0x65, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, - 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61, - 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x61, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x64, 0x0a, 0x25, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, + 0x6a, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, + 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, + 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, - 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x1a, 0x5c, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, - 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, - 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, - 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, - 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, - 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x72, 0x61, 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, 0x1e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, + 0x61, 0x74, 0x61, 0x1a, 0x64, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x60, 0x0a, 0x21, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x68, 0x0a, 0x29, 0x41, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xa7, 0x02, 0x0a, 0x32, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x70, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, + 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, + 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, + 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, + 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, + 0x43, 0x4d, 0x65, 0x74, 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, + 0x74, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, + 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x8d, 0x04, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x65, - 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, - 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, - 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x65, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, - 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x61, 0x0a, 0x22, + 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, + 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, + 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, + 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, + 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, + 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, + 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x60, 0x0a, 0x39, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, + 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x60, 0x0a, 0x39, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, - 0x64, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, - 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6a, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x79, - 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, - 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x64, 0x0a, 0x25, 0x41, 0x64, 0x64, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xa9, + 0x06, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, + 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x62, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, + 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x62, 0x0a, 0x06, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, - 0x60, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, - 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x1a, 0xa7, 0x02, 0x0a, 0x32, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x70, 0x63, 0x44, 0x61, - 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x50, - 0x72, 0x6f, 0x62, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, - 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, - 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, + 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, + 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, + 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, + 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, + 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0xdd, 0x04, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, - 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, - 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x1a, 0x8d, 0x04, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, - 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, - 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, + 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x41, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, @@ -14903,125 +15187,62 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, - 0x1a, 0x60, 0x0a, 0x39, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, - 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, - 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, - 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x1a, 0x60, 0x0a, 0x39, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, - 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xa9, 0x06, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, - 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x62, 0x0a, 0x06, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x48, 0x0a, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x8d, 0x04, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x12, 0x62, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x4a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, - 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, - 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, - 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, 0x70, - 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, 0x61, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, - 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, - 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, - 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, - 0x1a, 0xdd, 0x04, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, - 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, - 0x53, 0x75, 0x62, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x64, 0x50, - 0x72, 0x6f, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, - 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, - 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, - 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, - 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, - 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, - 0x1a, 0x8d, 0x04, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, - 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, - 0x53, 0x75, 0x62, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, + 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x6c, 0x6f, + 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, + 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, + 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, + 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, + 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, + 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, + 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x93, 0x04, 0x0a, 0x33, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x44, 0x61, 0x74, + 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, @@ -15052,1287 +15273,1378 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, - 0x1a, 0x93, 0x04, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, - 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, - 0x53, 0x75, 0x62, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, - 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x1a, 0x44, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, + 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xc2, 0x03, 0x0a, 0x34, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x69, 0x64, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x52, + 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x34, 0x0a, + 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, + 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, + 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, + 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, + 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x12, 0x54, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, + 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, + 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0xb4, 0x03, 0x0a, 0x26, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, + 0x61, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, + 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, + 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x72, 0x65, 0x6c, + 0x61, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, + 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, + 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x54, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x52, + 0x0a, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, + 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x1a, 0x96, 0x06, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x45, 0x74, 0x68, 0x56, 0x33, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, - 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, - 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, - 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, - 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x44, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xc2, 0x03, 0x0a, - 0x34, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, - 0x6c, 0x61, 0x79, 0x42, 0x69, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, - 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, - 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, - 0x79, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, - 0x6c, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, - 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x54, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, - 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, - 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x1a, 0xb4, 0x03, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, - 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x05, - 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x52, 0x65, 0x6c, 0x61, - 0x79, 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, - 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, - 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, - 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, - 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, - 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x54, - 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, - 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, - 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0x96, 0x06, 0x0a, 0x21, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x33, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, - 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x4c, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x58, 0x0a, - 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x6e, 0x0a, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x12, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x28, 0x0a, - 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, - 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x4e, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x12, 0x6e, 0x0a, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, - 0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x74, 0x1a, 0xd7, 0x02, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, - 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x20, 0x0a, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, - 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, - 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x23, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, + 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x12, 0x54, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, + 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4e, 0x0a, 0x13, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x1a, 0xd7, 0x02, 0x0a, 0x2b, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, + 0x61, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x05, 0x72, + 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, + 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, + 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, + 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, + 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, + 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, + 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x46, 0x0a, + 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0xb4, 0x01, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, + 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x0f, 0x66, + 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, - 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x46, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0xb4, 0x01, 0x0a, 0x21, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x36, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x29, 0x0a, 0x09, 0x68, 0x65, 0x61, - 0x64, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x08, 0x68, 0x65, 0x61, 0x64, - 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x2c, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x09, 0x68, 0x65, 0x61, 0x64, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x1a, 0x73, 0x0a, 0x2a, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, - 0x50, 0x49, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, - 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x71, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, - 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x68, 0x56, 0x32, 0x52, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x12, 0x29, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x6c, 0x6f, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, + 0x6f, 0x74, 0x56, 0x32, 0x52, 0x08, 0x68, 0x65, 0x61, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x2c, + 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, - 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, - 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x66, 0x0a, 0x1d, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x44, 0x61, 0x74, 0x61, 0x22, 0x89, 0x10, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, - 0x65, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x12, 0x6d, 0x0a, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, - 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x12, 0x6d, 0x0a, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, - 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, - 0x12, 0x76, 0x0a, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x19, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, - 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x6a, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, - 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, - 0x53, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, - 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4e, - 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, - 0x4e, 0x53, 0x55, 0x53, 0x12, 0x6a, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, - 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, - 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, - 0x12, 0x8a, 0x01, 0x0a, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, - 0x54, 0x42, 0x45, 0x41, 0x54, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, - 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x20, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, - 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x12, 0x6a, 0x0a, - 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, - 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, + 0x32, 0x52, 0x09, 0x68, 0x65, 0x61, 0x64, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x73, 0x0a, 0x2a, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, + 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x65, 0x77, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, + 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x1a, 0x71, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, + 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, + 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, + 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, + 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x66, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, + 0x62, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x42, 0x10, 0x0a, 0x0e, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0x89, + 0x10, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x2c, 0x0a, + 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x6d, 0x0a, 0x16, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, + 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x1a, 0x53, 0x0a, 0x05, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x12, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0xb7, - 0x02, 0x0a, 0x03, 0x47, 0x65, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x69, - 0x6e, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, - 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, - 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, - 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x38, 0x0a, 0x16, 0x41, 0x75, 0x74, 0x6f, - 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f, - 0x6d, 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1c, 0x41, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f, - 0x6d, 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x6a, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x50, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x70, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, - 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x12, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x75, 0x73, 0x65, 0x72, 0x1a, 0x2e, 0x0a, 0x04, 0x50, 0x65, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x03, - 0x67, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, - 0x03, 0x67, 0x65, 0x6f, 0x1a, 0x4f, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, - 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4f, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, - 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, - 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x52, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, - 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, + 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, + 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6d, 0x0a, 0x16, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, + 0x45, 0x43, 0x54, 0x45, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, + 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x48, 0x00, 0x52, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x76, 0x0a, 0x19, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x58, 0x0a, 0x2b, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, - 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, - 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4e, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x45, 0x44, 0x12, 0x6a, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, + 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, + 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, + 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, + 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x12, 0x6a, + 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, + 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, + 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x8a, 0x01, 0x0a, 0x20, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, + 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x18, + 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, + 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, + 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x12, 0x6a, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, + 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, + 0x49, 0x46, 0x59, 0x1a, 0x53, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x12, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0xb7, 0x02, 0x0a, 0x03, 0x47, 0x65, 0x6f, + 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x21, + 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, + 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x61, 0x74, 0x69, + 0x74, 0x75, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, + 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, + 0x64, 0x65, 0x12, 0x38, 0x0a, 0x16, 0x41, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x18, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x5f, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1c, + 0x41, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x1e, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x5f, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x1a, 0x6a, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x50, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x26, 0x0a, 0x03, + 0x67, 0x65, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, + 0x03, 0x67, 0x65, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x73, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x1a, 0x2e, + 0x0a, 0x04, 0x50, 0x65, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x1a, 0x4f, + 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, + 0x4f, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, + 0x1a, 0x52, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, - 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4b, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, - 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, - 0x6f, 0x1a, 0x4b, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, - 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x42, 0x10, - 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, - 0x22, 0x5a, 0x0a, 0x04, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x61, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0xe6, 0x1c, 0x0a, - 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, - 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x64, 0x61, 0x74, - 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xec, 0x1b, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x24, 0x0a, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, - 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, - 0x47, 0x10, 0x02, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, - 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, - 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, + 0x70, 0x65, 0x65, 0x72, 0x1a, 0x58, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, + 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4e, + 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, + 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4b, + 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, + 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x1a, 0x4b, 0x0a, 0x21, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, + 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x42, 0x10, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0x5a, 0x0a, 0x04, 0x4d, 0x65, + 0x74, 0x61, 0x12, 0x28, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x06, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x06, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0xf3, 0x20, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x12, 0x24, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4e, 0x61, 0x6d, 0x65, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x22, 0xf9, 0x1f, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, - 0x45, 0x58, 0x49, 0x54, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, - 0x12, 0x33, 0x0a, 0x2f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, - 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, - 0x4f, 0x4f, 0x46, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, - 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x12, 0x22, - 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x10, 0x09, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, - 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x10, 0x0a, 0x12, 0x2d, 0x0a, 0x29, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, - 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, + 0x22, 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, + 0x4b, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, + 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x10, 0x02, 0x12, 0x31, 0x0a, + 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, + 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x03, + 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, + 0x44, 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, + 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x10, 0x05, + 0x12, 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, + 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x33, 0x0a, 0x2f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, - 0x10, 0x0c, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, - 0x52, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, - 0x54, 0x41, 0x10, 0x0d, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x10, 0x0e, 0x12, 0x2b, 0x0a, 0x27, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, - 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x10, 0x0f, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, - 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x56, 0x32, 0x10, 0x10, 0x12, 0x24, - 0x0a, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x5f, - 0x56, 0x32, 0x10, 0x11, 0x12, 0x2e, 0x0a, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, - 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x5f, - 0x56, 0x32, 0x10, 0x12, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, - 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x10, - 0x13, 0x12, 0x36, 0x0a, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, - 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, - 0x52, 0x4f, 0x4f, 0x46, 0x5f, 0x56, 0x32, 0x10, 0x14, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x45, 0x4d, - 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x56, 0x32, 0x10, 0x15, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x10, 0x16, 0x12, 0x2a, 0x0a, 0x26, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x10, 0x07, 0x12, + 0x17, 0x0a, 0x13, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, + 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x09, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, - 0x49, 0x43, 0x45, 0x5f, 0x56, 0x32, 0x10, 0x17, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, - 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, - 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x10, 0x18, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, + 0x49, 0x43, 0x45, 0x10, 0x0a, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, + 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, + 0x52, 0x47, 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x10, 0x0c, 0x12, 0x30, 0x0a, 0x2c, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, + 0x31, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x45, + 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x0d, 0x12, 0x25, + 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x56, 0x32, 0x10, 0x0e, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, + 0x10, 0x0f, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, + 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, + 0x49, 0x4e, 0x54, 0x5f, 0x56, 0x32, 0x10, 0x10, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x56, 0x32, 0x10, 0x11, 0x12, 0x2e, + 0x0a, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, + 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x5f, 0x56, 0x32, 0x10, 0x12, 0x12, 0x2b, + 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, + 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x10, 0x13, 0x12, 0x36, 0x0a, 0x32, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x5f, 0x56, + 0x32, 0x10, 0x14, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, + 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x10, 0x15, 0x12, + 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, + 0x4b, 0x5f, 0x56, 0x32, 0x10, 0x16, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, + 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x56, 0x32, + 0x10, 0x17, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, + 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, + 0x56, 0x32, 0x10, 0x18, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, 0x52, 0x5f, + 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x19, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, - 0x45, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x19, - 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, + 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x1a, + 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, - 0x48, 0x49, 0x4e, 0x47, 0x10, 0x1a, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, - 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x10, 0x1b, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, - 0x53, 0x49, 0x54, 0x10, 0x1c, 0x12, 0x3a, 0x0a, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, + 0x54, 0x10, 0x1b, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x10, 0x1c, 0x12, + 0x3a, 0x0a, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, + 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x1d, 0x12, 0x38, 0x0a, 0x34, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, + 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x10, 0x1e, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, - 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, - 0x1d, 0x12, 0x38, 0x0a, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, - 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x1e, 0x12, 0x2d, 0x0a, 0x29, 0x42, + 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, + 0x41, 0x4c, 0x10, 0x1f, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, + 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x20, 0x12, + 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, + 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x22, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x23, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, + 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x10, 0x24, 0x12, 0x39, 0x0a, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, - 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, - 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, 0x4c, 0x10, 0x1f, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, - 0x43, 0x41, 0x52, 0x10, 0x20, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x22, - 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, - 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x23, 0x12, 0x23, 0x0a, 0x1f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x10, - 0x24, 0x12, 0x39, 0x0a, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, - 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x25, 0x12, 0x1a, 0x0a, 0x16, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, - 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x26, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x49, 0x42, 0x50, - 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, - 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x27, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, - 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, - 0x10, 0x28, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x29, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, + 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x25, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, + 0x10, 0x26, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, + 0x27, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x28, 0x12, 0x1c, 0x0a, 0x18, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, + 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x29, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, + 0x52, 0x50, 0x43, 0x10, 0x2a, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2b, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2a, 0x12, 0x19, 0x0a, 0x15, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, - 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2b, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, 0x10, - 0x2c, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x10, 0x2d, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x49, 0x42, 0x50, - 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, - 0x10, 0x2e, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, - 0x54, 0x41, 0x10, 0x2f, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x10, 0x30, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x31, 0x12, 0x2d, 0x0a, - 0x29, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, - 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x32, 0x12, 0x27, 0x0a, 0x23, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, - 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, - 0x43, 0x41, 0x52, 0x10, 0x33, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x10, 0x34, 0x12, 0x30, - 0x0a, 0x2c, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x49, 0x44, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x35, - 0x12, 0x28, 0x0a, 0x24, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x50, 0x52, - 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, - 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x36, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x33, 0x5f, - 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, - 0x37, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x56, - 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x38, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, - 0x10, 0x39, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0x3a, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, - 0x10, 0x3b, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x10, 0x3c, 0x12, 0x22, 0x0a, 0x1e, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, - 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x3d, 0x12, 0x20, - 0x0a, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, - 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x3e, - 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, - 0x10, 0x3f, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, - 0x45, 0x10, 0x40, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, - 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x48, 0x41, 0x56, 0x45, 0x10, 0x41, 0x12, 0x27, 0x0a, 0x23, + 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2c, 0x12, 0x15, 0x0a, 0x11, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, + 0x10, 0x2d, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x2e, 0x12, 0x20, 0x0a, 0x1c, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, + 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x10, 0x2f, 0x12, 0x1e, + 0x0a, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, + 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x30, 0x12, 0x27, + 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, + 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x31, 0x12, 0x2d, 0x0a, 0x29, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, + 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x32, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, + 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x33, 0x12, + 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, + 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x10, 0x34, 0x12, 0x30, 0x0a, 0x2c, 0x4d, 0x45, 0x56, 0x5f, + 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x49, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, + 0x42, 0x55, 0x49, 0x4c, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x55, + 0x42, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x35, 0x12, 0x28, 0x0a, 0x24, 0x4d, 0x45, + 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, + 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, + 0x45, 0x44, 0x10, 0x36, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x33, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, + 0x54, 0x4f, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x37, 0x12, 0x24, 0x0a, 0x20, 0x4d, + 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, + 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, + 0x38, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x10, 0x39, 0x12, 0x16, 0x0a, 0x12, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, + 0x56, 0x45, 0x10, 0x3a, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x10, 0x3b, 0x12, 0x16, 0x0a, 0x12, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x55, + 0x4e, 0x45, 0x10, 0x3c, 0x12, 0x22, 0x0a, 0x1e, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4d, + 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x3d, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x42, 0x50, + 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x3e, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, + 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x3f, 0x12, 0x1f, 0x0a, 0x1b, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4a, + 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x40, 0x12, 0x27, 0x0a, + 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, + 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, + 0x48, 0x41, 0x56, 0x45, 0x10, 0x41, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, + 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x57, 0x41, 0x4e, 0x54, 0x10, 0x42, 0x12, + 0x2b, 0x0a, 0x27, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, + 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, + 0x5f, 0x49, 0x44, 0x4f, 0x4e, 0x54, 0x57, 0x41, 0x4e, 0x54, 0x10, 0x43, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, - 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x57, - 0x41, 0x4e, 0x54, 0x10, 0x42, 0x12, 0x2b, 0x0a, 0x27, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x47, 0x52, + 0x41, 0x46, 0x54, 0x10, 0x44, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, - 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x44, 0x4f, 0x4e, 0x54, 0x57, 0x41, 0x4e, 0x54, - 0x10, 0x43, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, - 0x52, 0x4f, 0x4c, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x10, 0x44, 0x12, 0x27, 0x0a, 0x23, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, - 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x55, - 0x4e, 0x45, 0x10, 0x45, 0x12, 0x26, 0x0a, 0x22, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x53, 0x55, - 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x46, 0x12, 0x21, 0x0a, 0x1d, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, - 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x47, 0x12, - 0x19, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, - 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x10, 0x48, 0x12, 0x19, 0x0a, 0x15, 0x4e, 0x4f, - 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, - 0x49, 0x4f, 0x4e, 0x10, 0x49, 0x12, 0x2e, 0x0a, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, - 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, - 0x4f, 0x4f, 0x46, 0x10, 0x4a, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, - 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x4b, 0x12, 0x2e, 0x0a, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, - 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, - 0x42, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, - 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x4c, 0x12, 0x24, 0x0a, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, - 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, - 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x10, 0x4d, 0x12, 0x2e, 0x0a, - 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, - 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x43, 0x55, - 0x53, 0x54, 0x4f, 0x44, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x10, 0x4e, 0x12, 0x18, 0x0a, - 0x14, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x4f, 0x12, 0x24, 0x0a, 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x45, + 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x10, 0x45, 0x12, 0x26, + 0x0a, 0x22, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, + 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, + 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x46, 0x12, 0x21, 0x0a, 0x1d, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, + 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x47, 0x12, 0x19, 0x0a, 0x15, 0x4e, 0x4f, 0x44, + 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, + 0x55, 0x53, 0x10, 0x48, 0x12, 0x19, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, + 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x49, 0x12, + 0x2e, 0x0a, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, + 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, + 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x10, 0x4a, 0x12, + 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, + 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, + 0x4b, 0x12, 0x2e, 0x0a, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x44, 0x41, 0x54, 0x41, + 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, + 0x4c, 0x12, 0x24, 0x0a, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, + 0x54, 0x42, 0x45, 0x41, 0x54, 0x10, 0x4d, 0x12, 0x2e, 0x0a, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, + 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x44, 0x59, 0x5f, + 0x50, 0x52, 0x4f, 0x42, 0x45, 0x10, 0x4e, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x58, 0x45, 0x43, 0x55, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, + 0x4f, 0x12, 0x24, 0x0a, 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, + 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, + 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x50, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x50, 0x12, 0x22, 0x0a, - 0x1e, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, - 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x10, - 0x51, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, - 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, - 0x44, 0x10, 0x52, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, - 0x53, 0x10, 0x53, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x42, 0x4c, 0x4f, 0x42, 0x10, 0x54, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, - 0x45, 0x10, 0x55, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, - 0x47, 0x41, 0x54, 0x45, 0x10, 0x56, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, - 0x53, 0x10, 0x57, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x10, 0x58, 0x12, 0x2e, - 0x0a, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x59, 0x22, 0x04, - 0x08, 0x21, 0x10, 0x21, 0x2a, 0x1f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x50, 0x52, 0x49, 0x4e, 0x54, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x22, 0xf9, 0x10, 0x0a, 0x15, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, - 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, - 0x73, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, - 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, - 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x73, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, - 0x5f, 0x6d, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x5f, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x10, 0x51, 0x12, 0x20, 0x0a, 0x1c, 0x45, + 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, + 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x52, 0x12, 0x1e, 0x0a, + 0x1a, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, + 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x10, 0x53, 0x12, 0x21, 0x0a, + 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x10, 0x54, + 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, + 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x10, 0x55, 0x12, 0x31, 0x0a, + 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, + 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, 0x56, + 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x53, 0x10, 0x57, 0x12, 0x19, 0x0a, + 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, + 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x10, 0x58, 0x12, 0x2e, 0x0a, 0x2a, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, + 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x59, 0x12, 0x2e, 0x0a, 0x2a, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, + 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x5a, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, 0x54, 0x54, + 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x5b, 0x12, 0x32, 0x0a, 0x2e, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x49, 0x44, 0x10, 0x5c, 0x12, 0x31, + 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, + 0x53, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x10, + 0x5d, 0x12, 0x36, 0x0a, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, + 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x5e, 0x12, 0x38, 0x0a, 0x34, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, + 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x49, + 0x44, 0x10, 0x5f, 0x12, 0x35, 0x0a, 0x31, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x45, 0x58, + 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, + 0x45, 0x4e, 0x56, 0x45, 0x4c, 0x4f, 0x50, 0x45, 0x10, 0x60, 0x12, 0x30, 0x0a, 0x2c, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, + 0x50, 0x53, 0x55, 0x42, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, + 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x49, 0x44, 0x10, 0x61, 0x12, 0x36, 0x0a, 0x32, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, + 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, + 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, + 0x47, 0x45, 0x10, 0x62, 0x12, 0x2f, 0x0a, 0x2b, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x50, + 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, + 0x43, 0x45, 0x53, 0x10, 0x63, 0x22, 0x04, 0x08, 0x21, 0x10, 0x21, 0x2a, 0x1f, 0x42, 0x4c, 0x4f, + 0x43, 0x4b, 0x50, 0x52, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4c, + 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x22, 0xf9, 0x10, 0x0a, + 0x15, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x40, + 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x78, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, 0x78, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, - 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6d, 0x73, 0x12, 0x3a, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x5f, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, + 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6d, 0x73, 0x12, 0x3a, + 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x5f, 0x6d, 0x73, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x65, 0x72, + 0x5f, 0x73, 0x65, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, - 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x5f, 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x12, 0x40, 0x0a, - 0x0c, 0x6d, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0c, 0x6d, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x12, - 0x48, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x0c, + 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x67, 0x61, 0x73, 0x5f, 0x70, + 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x12, 0x48, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x61, 0x64, 0x73, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x12, 0x4b, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x73, 0x52, + 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x4c, 0x0a, + 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x64, 0x73, 0x52, 0x0b, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x73, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x73, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, + 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x12, 0x4a, 0x0a, 0x0a, 0x63, 0x6f, 0x64, + 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, - 0x61, 0x63, 0x68, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, - 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x61, 0x63, - 0x68, 0x65, 0x12, 0x4a, 0x0a, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x1a, 0xfa, - 0x01, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x64, 0x73, 0x12, 0x38, 0x0a, - 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, - 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x99, 0x03, 0x0a, 0x0b, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x48, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, - 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, + 0x63, 0x61, 0x63, 0x68, 0x65, 0x1a, 0xfa, 0x01, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x61, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, - 0x6f, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, - 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x15, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x42, + 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x64, - 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, + 0x74, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x1a, 0x99, 0x03, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x48, 0x0a, 0x10, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x64, - 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x1a, 0xac, 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x63, 0x68, - 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x04, 0x68, 0x69, 0x74, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x04, 0x68, 0x69, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, - 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x30, + 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x1a, 0xac, + 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2f, 0x0a, + 0x04, 0x68, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x68, 0x69, 0x74, 0x73, 0x12, 0x33, + 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x68, 0x69, - 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x1a, 0xa8, 0x02, 0x0a, 0x0e, 0x43, 0x6f, 0x64, 0x65, 0x43, - 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x04, 0x68, 0x69, 0x74, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x68, 0x69, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x6d, 0x69, - 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, - 0x38, 0x0a, 0x08, 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x08, 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x68, 0x69, 0x74, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, - 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x68, 0x69, 0x74, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x22, 0xdc, 0x48, 0x0a, 0x0e, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x4d, 0x65, 0x74, - 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x67, 0x0a, 0x19, 0x65, 0x74, 0x68, 0x5f, 0x76, - 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x12, 0x5a, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x6b, 0x0a, 0x19, - 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x42, 0x02, 0x18, - 0x01, 0x48, 0x00, 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, - 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x12, 0x86, 0x01, 0x0a, 0x22, 0x65, 0x74, - 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x02, 0x18, - 0x01, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, - 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, - 0x4e, 0x54, 0x12, 0x57, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x1d, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x12, 0x74, 0x0a, 0x1c, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, - 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, - 0x69, 0x74, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, - 0x54, 0x12, 0x8b, 0x01, 0x0a, 0x24, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x2f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, - 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x12, - 0x36, 0x0a, 0x13, 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, - 0x48, 0x00, 0x52, 0x13, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, - 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x5a, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, - 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0b, + 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6d, 0x69, 0x73, + 0x73, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x08, 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x1a, 0xa8, 0x02, + 0x0a, 0x0e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x2f, 0x0a, 0x04, 0x68, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x68, 0x69, 0x74, + 0x73, 0x12, 0x33, 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, + 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, + 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, + 0x12, 0x39, 0x0a, 0x09, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x09, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x6d, + 0x69, 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x69, + 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x22, 0x95, 0x54, 0x0a, 0x0e, 0x44, 0x65, 0x63, + 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1e, + 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x67, + 0x0a, 0x19, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, + 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x48, + 0x00, 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, + 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x5a, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, + 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x02, 0x18, + 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x12, 0x5e, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, - 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, - 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x23, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x12, 0x6b, 0x0a, 0x19, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, + 0x65, 0x6f, 0x72, 0x67, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, + 0x12, 0x86, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, + 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x12, 0x57, 0x0a, 0x12, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x42, 0x02, 0x18, + 0x01, 0x48, 0x00, 0x52, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, + 0x41, 0x44, 0x12, 0x74, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, + 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, + 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, + 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, + 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x12, 0x8b, 0x01, 0x0a, 0x24, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, + 0x66, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, + 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x2f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, + 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, + 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x12, 0x36, 0x0a, 0x13, 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, + 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x13, 0x4d, 0x45, 0x4d, 0x50, 0x4f, + 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x5a, + 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x5e, 0x0a, 0x12, 0x65, 0x74, + 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, + 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x12, 0x6d, 0x0a, 0x18, 0x65, 0x74, + 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, - 0x49, 0x43, 0x45, 0x12, 0x6d, 0x0a, 0x18, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, - 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x44, 0x65, 0x62, - 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, - 0x67, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, - 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, - 0x52, 0x47, 0x12, 0x5d, 0x0a, 0x17, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x48, 0x00, 0x52, 0x22, 0x42, + 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x12, 0x5d, 0x0a, 0x17, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x74, 0x65, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, + 0x65, 0x65, 0x48, 0x00, 0x52, 0x22, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, + 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, 0x79, 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, + 0x76, 0x31, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, + 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, + 0x41, 0x54, 0x41, 0x12, 0x6b, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x76, 0x32, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, + 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x32, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, - 0x45, 0x12, 0x79, 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2c, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x31, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x45, - 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x12, 0x6b, 0x0a, 0x1c, - 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x32, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, - 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, - 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x76, 0x32, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x12, 0x6f, 0x0a, 0x1c, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x5f, 0x76, 0x32, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x48, - 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, - 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x12, 0x8a, 0x01, 0x0a, 0x25, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x5f, 0x76, 0x32, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, - 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, - 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, - 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x56, 0x32, 0x12, 0x5b, 0x0a, 0x15, 0x65, 0x74, 0x68, 0x5f, 0x76, - 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x76, 0x32, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x56, 0x32, - 0x48, 0x00, 0x52, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, - 0x44, 0x5f, 0x56, 0x32, 0x12, 0x78, 0x0a, 0x1f, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, - 0x65, 0x78, 0x69, 0x74, 0x5f, 0x76, 0x32, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, - 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, - 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x5f, 0x56, 0x32, 0x12, 0x8f, - 0x01, 0x0a, 0x27, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, - 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x76, 0x32, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x32, 0x48, 0x00, 0x52, 0x32, 0x42, 0x45, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, + 0x12, 0x6f, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x5f, 0x76, 0x32, + 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, + 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, + 0x32, 0x12, 0x8a, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x32, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x5f, 0x56, 0x32, - 0x12, 0x38, 0x0a, 0x16, 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x32, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x16, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, - 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, - 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x76, 0x32, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x12, 0x62, 0x0a, 0x15, 0x65, 0x74, - 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x5f, 0x76, 0x32, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x56, 0x32, 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, - 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x56, 0x32, 0x12, 0x71, - 0x0a, 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x5f, 0x76, 0x32, 0x18, 0x1a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, - 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, - 0x32, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, - 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, - 0x32, 0x12, 0x82, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, - 0x56, 0x32, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, + 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x56, 0x32, 0x12, 0x5b, + 0x0a, 0x15, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, + 0x68, 0x65, 0x61, 0x64, 0x5f, 0x76, 0x32, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x48, 0x65, 0x61, 0x64, 0x56, 0x32, 0x48, 0x00, 0x52, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x56, 0x32, 0x12, 0x78, 0x0a, 0x1f, 0x65, + 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, + 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x76, 0x32, 0x18, 0x15, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, + 0x79, 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, + 0x49, 0x54, 0x5f, 0x56, 0x32, 0x12, 0x8f, 0x01, 0x0a, 0x27, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, + 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x76, + 0x32, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, + 0x32, 0x48, 0x00, 0x52, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, + 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, + 0x52, 0x4f, 0x4f, 0x46, 0x5f, 0x56, 0x32, 0x12, 0x38, 0x0a, 0x16, 0x6d, 0x65, 0x6d, 0x70, 0x6f, + 0x6f, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, + 0x32, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x16, 0x4d, 0x45, 0x4d, 0x50, 0x4f, + 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, + 0x32, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x32, 0x18, 0x18, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x21, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, + 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, + 0x32, 0x12, 0x62, 0x0a, 0x15, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x76, 0x32, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, + 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, 0x32, 0x48, 0x00, 0x52, 0x26, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, + 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, + 0x43, 0x45, 0x5f, 0x56, 0x32, 0x12, 0x71, 0x0a, 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, + 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6f, 0x72, + 0x67, 0x5f, 0x76, 0x32, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, + 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, + 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x12, 0x82, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, + 0x6e, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, + 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x56, 0x32, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, + 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0x82, 0x01, + 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, + 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x56, 0x32, 0x48, 0x00, + 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, + 0x4e, 0x47, 0x12, 0x7f, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, + 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, + 0x56, 0x32, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, - 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0x82, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, - 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, - 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, - 0x73, 0x68, 0x69, 0x6e, 0x67, 0x56, 0x32, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, - 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0x7f, 0x0a, 0x22, 0x65, + 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, + 0x58, 0x49, 0x54, 0x12, 0x65, 0x0a, 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x32, + 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, + 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x12, 0x98, 0x01, 0x0a, 0x2b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, - 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, - 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2d, 0x42, + 0x63, 0x6b, 0x5f, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x29, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x32, 0x48, 0x00, 0x52, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, - 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, - 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x12, 0x65, 0x0a, 0x1b, - 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, - 0x53, 0x49, 0x54, 0x12, 0x98, 0x01, 0x0a, 0x2b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x6c, 0x73, 0x5f, - 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, - 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x56, 0x32, 0x48, 0x00, 0x52, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, - 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x12, 0x83, - 0x01, 0x0a, 0x29, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x20, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x34, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, - 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, - 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6e, 0x0a, 0x1e, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x77, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x61, 0x6c, 0x56, 0x32, 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, - 0x41, 0x57, 0x41, 0x4c, 0x12, 0x6a, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, - 0x61, 0x72, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x62, - 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, - 0x12, 0x6b, 0x0a, 0x20, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, - 0x65, 0x63, 0x61, 0x72, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, - 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x54, 0x0a, - 0x16, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x12, 0x5a, 0x0a, 0x14, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x75, 0x74, 0x79, 0x18, 0x26, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x12, - 0x8f, 0x01, 0x0a, 0x2a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x27, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x35, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, - 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x41, - 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, - 0x55, 0x0a, 0x18, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x29, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, 0x18, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, - 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x76, 0x5f, 0x72, 0x70, 0x63, 0x18, - 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x2e, 0x52, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x56, - 0x5f, 0x52, 0x50, 0x43, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, - 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x2b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, - 0x50, 0x43, 0x12, 0x41, 0x0a, 0x11, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, - 0x63, 0x65, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, - 0x48, 0x00, 0x52, 0x11, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x12, 0x50, 0x0a, 0x16, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, - 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, - 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, - 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x59, 0x0a, 0x19, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, - 0x45, 0x44, 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, - 0x63, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, - 0x41, 0x44, 0x41, 0x54, 0x41, 0x12, 0x5b, 0x0a, 0x1a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x12, 0x7a, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, - 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, - 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, - 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, - 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x78, - 0x0a, 0x29, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, - 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, - 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x32, 0x20, 0x01, 0x28, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, + 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, + 0x48, 0x41, 0x4e, 0x47, 0x45, 0x12, 0x83, 0x01, 0x0a, 0x29, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, + 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6e, 0x0a, 0x1e, 0x65, + 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x18, 0x21, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x56, 0x32, 0x48, 0x00, + 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, 0x4c, 0x12, 0x6a, 0x0a, 0x1a, 0x65, + 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, + 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, + 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, + 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x6b, 0x0a, 0x20, 0x65, 0x74, 0x68, 0x5f, 0x76, + 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, + 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x29, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, - 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, - 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x7a, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, - 0x75, 0x62, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, - 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, - 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, - 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, - 0x45, 0x43, 0x41, 0x52, 0x12, 0x52, 0x0a, 0x11, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x73, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, - 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x12, 0x7d, 0x0a, 0x2c, 0x6d, 0x65, 0x76, 0x5f, - 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x62, 0x69, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, - 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x75, - 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x42, - 0x69, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x2c, 0x4d, 0x45, 0x56, 0x5f, 0x52, - 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x49, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x42, - 0x55, 0x49, 0x4c, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x55, 0x42, - 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x12, 0x74, 0x0a, 0x1b, 0x6d, 0x65, 0x76, 0x5f, 0x72, - 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x6c, - 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x50, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x69, - 0x76, 0x65, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x24, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, - 0x41, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4c, - 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x12, 0x5e, 0x0a, - 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x33, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x33, 0x5f, 0x56, 0x41, - 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x72, 0x0a, - 0x20, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, - 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, - 0x20, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, - 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x12, 0x6a, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x18, - 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f, - 0x73, 0x73, 0x69, 0x70, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x12, 0x4c, 0x0a, - 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x72, - 0x6f, 0x70, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x52, + 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x25, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, + 0x45, 0x43, 0x41, 0x52, 0x12, 0x54, 0x0a, 0x16, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x70, + 0x32, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x25, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, + 0x48, 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, + 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x5a, 0x0a, 0x14, 0x65, 0x74, + 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x75, + 0x74, 0x79, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, + 0x75, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, + 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x12, 0x8f, 0x01, 0x0a, 0x2a, 0x65, 0x74, 0x68, 0x5f, 0x76, + 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, + 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, + 0x00, 0x52, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, + 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, + 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x65, 0x65, + 0x72, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, + 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x44, + 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, 0x55, 0x0a, 0x18, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x65, + 0x65, 0x72, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, + 0x72, 0x48, 0x00, 0x52, 0x18, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, 0x4c, 0x0a, + 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, + 0x63, 0x76, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x44, 0x0a, 0x12, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x76, - 0x65, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x48, 0x00, 0x52, 0x12, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, - 0x45, 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x47, 0x72, 0x61, 0x66, - 0x74, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, 0x3d, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x2e, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, - 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x12, 0x67, 0x0a, - 0x1e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x2e, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1e, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4d, - 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x69, 0x76, - 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, - 0x52, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1c, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x55, 0x42, - 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x5e, 0x0a, 0x1b, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6a, - 0x65, 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x41, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, - 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, - 0x1b, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, - 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x75, 0x0a, 0x23, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x68, - 0x61, 0x76, 0x65, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, - 0x48, 0x61, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, - 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x48, - 0x41, 0x56, 0x45, 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, + 0x43, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x4c, 0x0a, 0x15, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x64, + 0x5f, 0x72, 0x70, 0x63, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, + 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x41, 0x0a, 0x11, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x2c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x48, 0x00, 0x52, 0x11, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x12, 0x50, 0x0a, 0x16, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x59, + 0x0a, 0x19, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, + 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x2e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, + 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x19, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, + 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x48, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1c, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, + 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x12, 0x5b, 0x0a, 0x1a, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x48, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x1a, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, + 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x12, 0x7a, 0x0a, 0x23, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, + 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, + 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, + 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x78, 0x0a, 0x29, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, + 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x29, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, + 0x7a, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, + 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, + 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, + 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, + 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x52, 0x0a, 0x11, 0x65, + 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, + 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x12, + 0x7d, 0x0a, 0x2c, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x62, 0x69, 0x64, + 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, + 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x42, 0x69, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x00, + 0x52, 0x2c, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x49, 0x44, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x12, 0x74, + 0x0a, 0x1b, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, 0x36, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, + 0x6c, 0x61, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x24, + 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, + 0x45, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, + 0x45, 0x52, 0x45, 0x44, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x33, 0x5f, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x37, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x48, + 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x33, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x42, + 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x72, 0x0a, 0x20, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, + 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x20, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, + 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, + 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6a, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, + 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x48, 0x00, 0x52, 0x25, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x47, 0x4f, + 0x53, 0x53, 0x49, 0x50, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x3a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, + 0x70, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, + 0x50, 0x43, 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, + 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4c, 0x65, 0x61, + 0x76, 0x65, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x3c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x47, 0x72, 0x61, 0x66, 0x74, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, + 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x12, 0x44, + 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, + 0x72, 0x75, 0x6e, 0x65, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x48, 0x00, + 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, + 0x52, 0x55, 0x4e, 0x45, 0x12, 0x67, 0x0a, 0x1e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1e, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, + 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x61, 0x0a, + 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x65, + 0x6c, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x3f, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, + 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, + 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x12, 0x5e, 0x0a, 0x1b, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1b, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x77, 0x61, 0x6e, 0x74, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, + 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x68, 0x61, 0x76, 0x65, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x57, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x48, 0x61, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, - 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x57, 0x41, 0x4e, 0x54, 0x12, 0x81, 0x01, 0x0a, 0x27, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, - 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x6f, - 0x6e, 0x74, 0x77, 0x61, 0x6e, 0x74, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x49, 0x44, 0x6f, 0x6e, 0x74, 0x57, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, - 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x27, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, - 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x44, 0x4f, 0x4e, 0x54, 0x57, 0x41, 0x4e, 0x54, 0x12, 0x75, - 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, - 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x47, 0x72, 0x61, 0x66, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, - 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, - 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, - 0x47, 0x52, 0x41, 0x46, 0x54, 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x48, 0x41, 0x56, 0x45, 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x77, 0x61, 0x6e, + 0x74, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x57, 0x61, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, + 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x57, 0x41, 0x4e, + 0x54, 0x12, 0x81, 0x01, 0x0a, 0x27, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, + 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x6f, 0x6e, 0x74, 0x77, 0x61, 0x6e, 0x74, 0x18, 0x44, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, + 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x44, 0x6f, 0x6e, 0x74, 0x57, 0x61, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x27, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, + 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x44, 0x4f, 0x4e, + 0x54, 0x57, 0x41, 0x4e, 0x54, 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, 0x46, 0x20, 0x01, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x4d, 0x65, 0x74, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61, 0x66, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, - 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x12, 0x6a, 0x0a, 0x22, + 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, 0x75, 0x62, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, - 0x65, 0x6d, 0x48, 0x00, 0x52, 0x22, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x53, 0x55, 0x42, 0x53, - 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x64, 0x0a, 0x1d, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, - 0x61, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, - 0x1d, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, - 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x52, - 0x0a, 0x15, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, - 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, - 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, - 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, - 0x55, 0x53, 0x12, 0x52, 0x0a, 0x15, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x4a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, - 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, - 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x93, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, - 0x62, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6e, 0x64, 0x5f, - 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x32, 0x48, 0x00, - 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, - 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, - 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x12, 0x7e, 0x0a, 0x21, - 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, - 0x72, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x2c, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, - 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x8e, 0x01, 0x0a, - 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, - 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x4d, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, - 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x44, 0x61, - 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, - 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, - 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, - 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x6d, 0x0a, - 0x20, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x79, - 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, - 0x74, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, - 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x48, 0x00, 0x52, 0x20, 0x4c, 0x49, 0x42, 0x50, - 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, - 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x12, 0x4d, 0x0a, 0x15, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x79, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x79, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x12, 0x86, 0x01, 0x0a, 0x2a, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x64, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, - 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, - 0x79, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, - 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x44, 0x59, 0x5f, 0x50, - 0x52, 0x4f, 0x42, 0x45, 0x12, 0x4f, 0x0a, 0x14, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0xc9, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x48, 0x00, 0x52, - 0x14, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x12, 0x71, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, - 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x65, - 0x77, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0xca, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, - 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, - 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x45, 0x57, - 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x6b, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x73, - 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, - 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, - 0x6f, 0x62, 0x73, 0x48, 0x00, 0x52, 0x1e, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, - 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x47, 0x45, 0x54, 0x5f, - 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x12, 0x66, 0x0a, 0x1c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0xcc, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x67, - 0x69, 0x6e, 0x65, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, - 0x1c, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, - 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x60, 0x0a, - 0x1a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, - 0x65, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x18, 0xcd, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, - 0x73, 0x48, 0x00, 0x52, 0x1a, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, - 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x12, - 0x4f, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x18, 0xce, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x48, - 0x00, 0x52, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, - 0x12, 0x69, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, - 0x18, 0xcf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, - 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, - 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, 0x75, 0x0a, 0x22, 0x65, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x72, + 0x75, 0x6e, 0x65, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, + 0x72, 0x75, 0x6e, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, + 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, + 0x55, 0x4e, 0x45, 0x12, 0x6a, 0x0a, 0x22, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x73, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, 0x75, + 0x62, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x22, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, + 0x54, 0x41, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x12, + 0x64, 0x0a, 0x1d, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x1d, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x4d, 0x45, + 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x52, 0x0a, 0x15, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x18, 0x49, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6e, 0x6f, 0x64, 0x65, + 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, + 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, + 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x12, 0x52, 0x0a, 0x15, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, + 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x93, 0x01, + 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, + 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x4b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, + 0x6f, 0x6f, 0x66, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, + 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, + 0x4f, 0x4f, 0x46, 0x12, 0x7e, 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, + 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, + 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, + 0x43, 0x41, 0x52, 0x12, 0x8e, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, + 0x61, 0x72, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, + 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, + 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, + 0x45, 0x43, 0x41, 0x52, 0x12, 0x6d, 0x0a, 0x20, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x5f, 0x68, + 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, 0x79, 0x6e, + 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x48, + 0x00, 0x52, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, + 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, + 0x45, 0x41, 0x54, 0x12, 0x4d, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x18, 0x4f, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, + 0x46, 0x59, 0x12, 0x86, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x62, + 0x65, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x48, 0x00, 0x52, + 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, + 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x43, 0x55, + 0x53, 0x54, 0x4f, 0x44, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x12, 0x4f, 0x0a, 0x14, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x48, 0x00, 0x52, 0x14, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x12, 0x71, 0x0a, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x18, 0xca, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, + 0x49, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x20, 0x43, + 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, + 0x6b, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x62, + 0x73, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, + 0x50, 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x48, 0x00, 0x52, 0x1e, 0x43, 0x4f, + 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x12, 0x66, 0x0a, 0x1c, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0xcc, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x1c, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, + 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x60, 0x0a, 0x1a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x6c, 0x6f, + 0x62, 0x73, 0x18, 0xcd, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x48, 0x00, 0x52, 0x1a, 0x45, 0x58, 0x45, 0x43, + 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x45, 0x54, + 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x12, 0x4f, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, + 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x18, 0xce, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x12, 0x69, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, + 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0xcf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, + 0x45, 0x45, 0x12, 0x75, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0xd0, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, + 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x12, 0x58, 0x0a, 0x17, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x18, 0xd1, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x17, 0x45, 0x58, 0x45, 0x43, + 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4d, 0x45, 0x54, 0x52, + 0x49, 0x43, 0x53, 0x12, 0x7a, 0x0a, 0x1f, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0xd2, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x12, + 0x83, 0x01, 0x0a, 0x1f, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x18, 0xd3, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, + 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x53, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, + 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x82, 0x01, 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, + 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, + 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xd4, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, + 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x86, 0x01, 0x0a, 0x23, 0x65, + 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, + 0x69, 0x64, 0x18, 0xd5, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x69, + 0x64, 0x48, 0x00, 0x52, 0x2e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x45, 0x58, + 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, + 0x42, 0x49, 0x44, 0x12, 0x84, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0xd6, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x50, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, + 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x12, 0x87, 0x01, 0x0a, 0x27, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x18, 0xd0, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xd7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, + 0x52, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x92, 0x01, 0x0a, 0x29, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, + 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, + 0x69, 0x64, 0x18, 0xd8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x69, + 0x64, 0x48, 0x00, 0x52, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, - 0x54, 0x45, 0x12, 0x58, 0x0a, 0x17, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0xd1, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x48, 0x00, 0x52, 0x17, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x53, 0x12, 0x7a, 0x0a, 0x1f, - 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0xd2, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x43, 0x43, - 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, + 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x49, 0x44, 0x12, 0xa4, 0x01, 0x0a, 0x31, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, + 0x70, 0x73, 0x75, 0x62, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x65, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x18, + 0xd9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x48, 0x00, 0x52, 0x31, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, + 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x56, 0x45, 0x4c, 0x4f, 0x50, 0x45, + 0x12, 0x95, 0x01, 0x0a, 0x2c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, + 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x69, + 0x64, 0x18, 0xda, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x69, 0x64, 0x48, 0x00, 0x52, 0x2c, 0x4c, 0x49, 0x42, 0x50, + 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, + 0x55, 0x42, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, + 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x49, 0x44, 0x12, 0xa7, 0x01, 0x0a, 0x32, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, + 0x73, 0x75, 0x62, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0xdb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x32, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, + 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, + 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, + 0x47, 0x45, 0x12, 0x93, 0x01, 0x0a, 0x2b, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x18, 0xdc, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, + 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x50, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x48, 0x00, 0x52, 0x2b, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, + 0x53, 0x55, 0x42, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x45, + 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x2a, 0x6c, 0x0a, 0x0c, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, @@ -16587,12 +16899,21 @@ var file_pkg_proto_xatu_event_ingester_proto_goTypes = []any{ (*libp2p.DataColumnCustodyProbe)(nil), // 218: xatu.libp2p.DataColumnCustodyProbe (*v1.Blob)(nil), // 219: xatu.eth.v1.Blob (*v1.BlockAccessListChange)(nil), // 220: xatu.eth.v1.BlockAccessListChange - (*libp2p.Peer)(nil), // 221: xatu.libp2p.Peer - (*wrapperspb.BoolValue)(nil), // 222: google.protobuf.BoolValue - (*libp2p.TraceEventMetadata)(nil), // 223: xatu.libp2p.TraceEventMetadata - (*wrapperspb.StringValue)(nil), // 224: google.protobuf.StringValue - (*mevrelay.Relay)(nil), // 225: xatu.mevrelay.Relay - (*wrapperspb.Int64Value)(nil), // 226: google.protobuf.Int64Value + (*v1.SignedExecutionPayloadEnvelope)(nil), // 221: xatu.eth.v1.SignedExecutionPayloadEnvelope + (*v1.PayloadAttestationMessage)(nil), // 222: xatu.eth.v1.PayloadAttestationMessage + (*v1.SignedExecutionPayloadBid)(nil), // 223: xatu.eth.v1.SignedExecutionPayloadBid + (*v1.SignedProposerPreferences)(nil), // 224: xatu.eth.v1.SignedProposerPreferences + (*v1.PayloadAttestation)(nil), // 225: xatu.eth.v1.PayloadAttestation + (*gossipsub.ExecutionPayloadEnvelope)(nil), // 226: xatu.libp2p.gossipsub.eth.ExecutionPayloadEnvelope + (*gossipsub.ExecutionPayloadBid)(nil), // 227: xatu.libp2p.gossipsub.eth.ExecutionPayloadBid + (*gossipsub.PayloadAttestationMessage)(nil), // 228: xatu.libp2p.gossipsub.eth.PayloadAttestationMessage + (*gossipsub.ProposerPreferences)(nil), // 229: xatu.libp2p.gossipsub.eth.ProposerPreferences + (*libp2p.Peer)(nil), // 230: xatu.libp2p.Peer + (*wrapperspb.BoolValue)(nil), // 231: google.protobuf.BoolValue + (*libp2p.TraceEventMetadata)(nil), // 232: xatu.libp2p.TraceEventMetadata + (*wrapperspb.StringValue)(nil), // 233: google.protobuf.StringValue + (*mevrelay.Relay)(nil), // 234: xatu.mevrelay.Relay + (*wrapperspb.Int64Value)(nil), // 235: google.protobuf.Int64Value } var file_pkg_proto_xatu_event_ingester_proto_depIdxs = []int32{ 29, // 0: xatu.CreateEventsRequest.events:type_name -> xatu.DecoratedEvent @@ -16846,295 +17167,305 @@ var file_pkg_proto_xatu_event_ingester_proto_depIdxs = []int32{ 17, // 248: xatu.DecoratedEvent.eth_v2_beacon_block_sync_aggregate:type_name -> xatu.SyncAggregateData 28, // 249: xatu.DecoratedEvent.execution_block_metrics:type_name -> xatu.ExecutionBlockMetrics 220, // 250: xatu.DecoratedEvent.eth_v2_beacon_block_access_list:type_name -> xatu.eth.v1.BlockAccessListChange - 125, // 251: xatu.ClientMeta.Ethereum.network:type_name -> xatu.ClientMeta.Ethereum.Network - 126, // 252: xatu.ClientMeta.Ethereum.execution:type_name -> xatu.ClientMeta.Ethereum.Execution - 127, // 253: xatu.ClientMeta.Ethereum.consensus:type_name -> xatu.ClientMeta.Ethereum.Consensus - 4, // 254: xatu.ClientMeta.AdditionalEthV1AttestationSourceData.epoch:type_name -> xatu.Epoch - 5, // 255: xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data.epoch:type_name -> xatu.EpochV2 - 4, // 256: xatu.ClientMeta.AdditionalEthV1AttestationTargetData.epoch:type_name -> xatu.Epoch - 5, // 257: xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data.epoch:type_name -> xatu.EpochV2 - 32, // 258: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceData - 34, // 259: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetData - 6, // 260: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.slot:type_name -> xatu.Slot - 4, // 261: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.epoch:type_name -> xatu.Epoch - 9, // 262: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.propagation:type_name -> xatu.Propagation - 11, // 263: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.attesting_validator:type_name -> xatu.AttestingValidator - 33, // 264: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 35, // 265: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 7, // 266: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.slot:type_name -> xatu.SlotV2 - 5, // 267: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.epoch:type_name -> xatu.EpochV2 - 10, // 268: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.propagation:type_name -> xatu.PropagationV2 - 12, // 269: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.attesting_validator:type_name -> xatu.AttestingValidatorV2 - 4, // 270: xatu.ClientMeta.AdditionalEthV1EventsHeadData.epoch:type_name -> xatu.Epoch - 6, // 271: xatu.ClientMeta.AdditionalEthV1EventsHeadData.slot:type_name -> xatu.Slot - 9, // 272: xatu.ClientMeta.AdditionalEthV1EventsHeadData.propagation:type_name -> xatu.Propagation - 5, // 273: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.epoch:type_name -> xatu.EpochV2 - 7, // 274: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.slot:type_name -> xatu.SlotV2 - 10, // 275: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.propagation:type_name -> xatu.PropagationV2 - 4, // 276: xatu.ClientMeta.AdditionalEthV1EventsBlockData.epoch:type_name -> xatu.Epoch - 6, // 277: xatu.ClientMeta.AdditionalEthV1EventsBlockData.slot:type_name -> xatu.Slot - 9, // 278: xatu.ClientMeta.AdditionalEthV1EventsBlockData.propagation:type_name -> xatu.Propagation - 5, // 279: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.epoch:type_name -> xatu.EpochV2 - 7, // 280: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.slot:type_name -> xatu.SlotV2 - 10, // 281: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.propagation:type_name -> xatu.PropagationV2 - 5, // 282: xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData.epoch:type_name -> xatu.EpochV2 - 7, // 283: xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData.slot:type_name -> xatu.SlotV2 - 10, // 284: xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData.propagation:type_name -> xatu.PropagationV2 - 4, // 285: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitData.epoch:type_name -> xatu.Epoch - 5, // 286: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.epoch:type_name -> xatu.EpochV2 - 5, // 287: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 288: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.wallclock_slot:type_name -> xatu.SlotV2 - 4, // 289: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointData.epoch:type_name -> xatu.Epoch - 5, // 290: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointV2Data.epoch:type_name -> xatu.EpochV2 - 4, // 291: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.epoch:type_name -> xatu.Epoch - 6, // 292: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.slot:type_name -> xatu.Slot - 9, // 293: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.propagation:type_name -> xatu.Propagation - 5, // 294: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.epoch:type_name -> xatu.EpochV2 - 7, // 295: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.slot:type_name -> xatu.SlotV2 - 10, // 296: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.propagation:type_name -> xatu.PropagationV2 - 4, // 297: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.epoch:type_name -> xatu.Epoch - 6, // 298: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.slot:type_name -> xatu.Slot - 9, // 299: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.propagation:type_name -> xatu.Propagation - 5, // 300: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.epoch:type_name -> xatu.EpochV2 - 7, // 301: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.slot:type_name -> xatu.SlotV2 - 10, // 302: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.propagation:type_name -> xatu.PropagationV2 - 49, // 303: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofData.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData - 50, // 304: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofV2Data.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data - 4, // 305: xatu.ClientMeta.ForkChoiceSnapshot.request_epoch:type_name -> xatu.Epoch - 6, // 306: xatu.ClientMeta.ForkChoiceSnapshot.request_slot:type_name -> xatu.Slot - 144, // 307: xatu.ClientMeta.ForkChoiceSnapshot.timestamp:type_name -> google.protobuf.Timestamp - 5, // 308: xatu.ClientMeta.ForkChoiceSnapshotV2.request_epoch:type_name -> xatu.EpochV2 - 7, // 309: xatu.ClientMeta.ForkChoiceSnapshotV2.request_slot:type_name -> xatu.SlotV2 - 143, // 310: xatu.ClientMeta.ForkChoiceSnapshotV2.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value - 143, // 311: xatu.ClientMeta.ForkChoiceSnapshotV2.request_duration_ms:type_name -> google.protobuf.UInt64Value - 144, // 312: xatu.ClientMeta.ForkChoiceSnapshotV2.timestamp:type_name -> google.protobuf.Timestamp - 53, // 313: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshot - 54, // 314: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceV2Data.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 - 53, // 315: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshot - 53, // 316: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshot - 54, // 317: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 - 54, // 318: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 - 5, // 319: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.epoch:type_name -> xatu.EpochV2 - 7, // 320: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.slot:type_name -> xatu.SlotV2 - 5, // 321: xatu.ClientMeta.AdditionalEthV1BeaconSyncCommitteeData.epoch:type_name -> xatu.EpochV2 - 143, // 322: xatu.ClientMeta.AdditionalEthV1BeaconSyncCommitteeData.sync_committee_period:type_name -> google.protobuf.UInt64Value - 18, // 323: xatu.ClientMeta.AdditionalEthV2BeaconBlockSyncAggregateData.block:type_name -> xatu.BlockIdentifier - 143, // 324: xatu.ClientMeta.AdditionalEthV2BeaconBlockSyncAggregateData.sync_committee_period:type_name -> google.protobuf.UInt64Value - 143, // 325: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.nonce:type_name -> google.protobuf.UInt64Value - 143, // 326: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.gas:type_name -> google.protobuf.UInt64Value - 151, // 327: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.type:type_name -> google.protobuf.UInt32Value - 143, // 328: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.blob_gas:type_name -> google.protobuf.UInt64Value - 4, // 329: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.epoch:type_name -> xatu.Epoch - 6, // 330: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.slot:type_name -> xatu.Slot - 5, // 331: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.epoch:type_name -> xatu.EpochV2 - 7, // 332: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.slot:type_name -> xatu.SlotV2 - 143, // 333: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_count:type_name -> google.protobuf.UInt64Value - 143, // 334: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes:type_name -> google.protobuf.UInt64Value - 143, // 335: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes_compressed:type_name -> google.protobuf.UInt64Value - 143, // 336: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes:type_name -> google.protobuf.UInt64Value - 143, // 337: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes_compressed:type_name -> google.protobuf.UInt64Value - 18, // 338: xatu.ClientMeta.AdditionalEthV2BeaconBlockAttesterSlashingData.block:type_name -> xatu.BlockIdentifier - 18, // 339: xatu.ClientMeta.AdditionalEthV2BeaconBlockProposerSlashingData.block:type_name -> xatu.BlockIdentifier - 18, // 340: xatu.ClientMeta.AdditionalEthV2BeaconBlockVoluntaryExitData.block:type_name -> xatu.BlockIdentifier - 18, // 341: xatu.ClientMeta.AdditionalEthV2BeaconBlockDepositData.block:type_name -> xatu.BlockIdentifier - 18, // 342: xatu.ClientMeta.AdditionalEthV2BeaconBlockBLSToExecutionChangeData.block:type_name -> xatu.BlockIdentifier - 18, // 343: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.block:type_name -> xatu.BlockIdentifier - 143, // 344: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.position_in_block:type_name -> google.protobuf.UInt64Value - 18, // 345: xatu.ClientMeta.AdditionalEthV2BeaconBlockWithdrawalData.block:type_name -> xatu.BlockIdentifier - 18, // 346: xatu.ClientMeta.AdditionalEthV2BeaconBlockAccessListData.block:type_name -> xatu.BlockIdentifier - 143, // 347: xatu.ClientMeta.AdditionalEthV2BeaconBlockAccessListData.block_number:type_name -> google.protobuf.UInt64Value - 143, // 348: xatu.ClientMeta.AttestationDataSnapshot.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value - 143, // 349: xatu.ClientMeta.AttestationDataSnapshot.request_duration_ms:type_name -> google.protobuf.UInt64Value - 144, // 350: xatu.ClientMeta.AttestationDataSnapshot.timestamp:type_name -> google.protobuf.Timestamp - 33, // 351: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 35, // 352: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 5, // 353: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.epoch:type_name -> xatu.EpochV2 - 7, // 354: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.slot:type_name -> xatu.SlotV2 - 74, // 355: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.Snapshot:type_name -> xatu.ClientMeta.AttestationDataSnapshot - 5, // 356: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 357: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.slot:type_name -> xatu.SlotV2 - 10, // 358: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.propagation:type_name -> xatu.PropagationV2 - 5, // 359: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 360: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.slot:type_name -> xatu.SlotV2 - 10, // 361: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.propagation:type_name -> xatu.PropagationV2 - 5, // 362: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 363: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.slot:type_name -> xatu.SlotV2 - 143, // 364: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_size:type_name -> google.protobuf.UInt64Value - 143, // 365: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_empty_size:type_name -> google.protobuf.UInt64Value - 33, // 366: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 35, // 367: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 7, // 368: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.slot:type_name -> xatu.SlotV2 - 5, // 369: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.epoch:type_name -> xatu.EpochV2 - 10, // 370: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.propagation:type_name -> xatu.PropagationV2 - 12, // 371: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 - 221, // 372: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.libp2p.Peer - 151, // 373: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.subnet:type_name -> google.protobuf.UInt32Value - 222, // 374: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.validated:type_name -> google.protobuf.BoolValue - 5, // 375: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.epoch:type_name -> xatu.EpochV2 - 7, // 376: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.slot:type_name -> xatu.SlotV2 - 18, // 377: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.block:type_name -> xatu.BlockIdentifier - 143, // 378: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.position_in_block:type_name -> google.protobuf.UInt64Value - 5, // 379: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.epoch:type_name -> xatu.EpochV2 - 7, // 380: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.slot:type_name -> xatu.SlotV2 - 33, // 381: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 35, // 382: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 223, // 383: xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 384: xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 385: xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 386: xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 387: xatu.ClientMeta.AdditionalLibP2PTraceDropRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 388: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIHaveData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 389: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIWantData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 390: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIDontWantData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 391: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlGraftData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 392: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlPruneData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 393: xatu.ClientMeta.AdditionalLibP2PTraceJoinData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 394: xatu.ClientMeta.AdditionalLibP2PTraceLeaveData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 395: xatu.ClientMeta.AdditionalLibP2PTraceGraftData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 396: xatu.ClientMeta.AdditionalLibP2PTracePruneData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 397: xatu.ClientMeta.AdditionalLibP2PTraceDuplicateMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 398: xatu.ClientMeta.AdditionalLibP2PTraceDeliverMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 399: xatu.ClientMeta.AdditionalLibP2PTracePublishMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 400: xatu.ClientMeta.AdditionalLibP2PTraceRejectMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 401: xatu.ClientMeta.AdditionalLibP2PTraceConnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 402: xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 403: xatu.ClientMeta.AdditionalLibP2PTraceSyntheticHeartbeatData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 404: xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 405: xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 406: xatu.ClientMeta.AdditionalLibP2PTraceIdentifyData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 407: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 5, // 408: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.epoch:type_name -> xatu.EpochV2 - 7, // 409: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.slot:type_name -> xatu.SlotV2 - 5, // 410: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 411: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.wallclock_slot:type_name -> xatu.SlotV2 - 223, // 412: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaSubscriptionData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 223, // 413: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 5, // 414: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.epoch:type_name -> xatu.EpochV2 - 7, // 415: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.slot:type_name -> xatu.SlotV2 - 5, // 416: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 417: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_slot:type_name -> xatu.SlotV2 - 10, // 418: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.propagation:type_name -> xatu.PropagationV2 - 223, // 419: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 224, // 420: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.topic:type_name -> google.protobuf.StringValue - 151, // 421: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_size:type_name -> google.protobuf.UInt32Value - 224, // 422: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_id:type_name -> google.protobuf.StringValue - 5, // 423: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData.epoch:type_name -> xatu.EpochV2 - 5, // 424: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData.epoch:type_name -> xatu.EpochV2 - 110, // 425: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.source:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData - 111, // 426: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.target:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData - 7, // 427: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.slot:type_name -> xatu.SlotV2 - 5, // 428: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.epoch:type_name -> xatu.EpochV2 - 10, // 429: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.propagation:type_name -> xatu.PropagationV2 - 12, // 430: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 - 5, // 431: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 432: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_slot:type_name -> xatu.SlotV2 - 223, // 433: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 224, // 434: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.topic:type_name -> google.protobuf.StringValue - 151, // 435: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_size:type_name -> google.protobuf.UInt32Value - 224, // 436: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_id:type_name -> google.protobuf.StringValue - 5, // 437: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.epoch:type_name -> xatu.EpochV2 - 7, // 438: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.slot:type_name -> xatu.SlotV2 - 5, // 439: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 440: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.wallclock_slot:type_name -> xatu.SlotV2 - 10, // 441: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.propagation:type_name -> xatu.PropagationV2 - 143, // 442: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.aggregator_index:type_name -> google.protobuf.UInt64Value - 223, // 443: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 224, // 444: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.topic:type_name -> google.protobuf.StringValue - 151, // 445: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.message_size:type_name -> google.protobuf.UInt32Value - 224, // 446: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.message_id:type_name -> google.protobuf.StringValue - 5, // 447: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 448: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.slot:type_name -> xatu.SlotV2 - 5, // 449: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 450: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_slot:type_name -> xatu.SlotV2 - 10, // 451: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.propagation:type_name -> xatu.PropagationV2 - 223, // 452: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 224, // 453: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.topic:type_name -> google.protobuf.StringValue - 151, // 454: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_size:type_name -> google.protobuf.UInt32Value - 224, // 455: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_id:type_name -> google.protobuf.StringValue - 5, // 456: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 457: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.slot:type_name -> xatu.SlotV2 - 5, // 458: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 459: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.wallclock_slot:type_name -> xatu.SlotV2 - 10, // 460: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.propagation:type_name -> xatu.PropagationV2 - 223, // 461: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 224, // 462: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.topic:type_name -> google.protobuf.StringValue - 151, // 463: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.message_size:type_name -> google.protobuf.UInt32Value - 224, // 464: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.message_id:type_name -> google.protobuf.StringValue - 5, // 465: xatu.ClientMeta.AdditionalEthV1ValidatorsData.epoch:type_name -> xatu.EpochV2 - 225, // 466: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.relay:type_name -> xatu.mevrelay.Relay - 7, // 467: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.slot:type_name -> xatu.SlotV2 - 7, // 468: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.wallclock_slot:type_name -> xatu.SlotV2 - 5, // 469: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.epoch:type_name -> xatu.EpochV2 - 5, // 470: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.wallclock_epoch:type_name -> xatu.EpochV2 - 143, // 471: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.requested_at_slot_time:type_name -> google.protobuf.UInt64Value - 143, // 472: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.response_at_slot_time:type_name -> google.protobuf.UInt64Value - 225, // 473: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.relay:type_name -> xatu.mevrelay.Relay - 7, // 474: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.slot:type_name -> xatu.SlotV2 - 7, // 475: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.wallclock_slot:type_name -> xatu.SlotV2 - 5, // 476: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.epoch:type_name -> xatu.EpochV2 - 5, // 477: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.wallclock_epoch:type_name -> xatu.EpochV2 - 143, // 478: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.requested_at_slot_time:type_name -> google.protobuf.UInt64Value - 143, // 479: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.response_at_slot_time:type_name -> google.protobuf.UInt64Value - 5, // 480: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.epoch:type_name -> xatu.EpochV2 - 7, // 481: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.slot:type_name -> xatu.SlotV2 - 143, // 482: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_count:type_name -> google.protobuf.UInt64Value - 143, // 483: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_total_bytes:type_name -> google.protobuf.UInt64Value - 143, // 484: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_total_bytes_compressed:type_name -> google.protobuf.UInt64Value - 143, // 485: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.total_bytes:type_name -> google.protobuf.UInt64Value - 143, // 486: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.total_bytes_compressed:type_name -> google.protobuf.UInt64Value - 143, // 487: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.request_duration_ms:type_name -> google.protobuf.UInt64Value - 144, // 488: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.requested_at:type_name -> google.protobuf.Timestamp - 225, // 489: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.relay:type_name -> xatu.mevrelay.Relay - 7, // 490: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.slot:type_name -> xatu.SlotV2 - 7, // 491: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.wallclock_slot:type_name -> xatu.SlotV2 - 5, // 492: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.epoch:type_name -> xatu.EpochV2 - 5, // 493: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.wallclock_epoch:type_name -> xatu.EpochV2 - 143, // 494: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.validator_index:type_name -> google.protobuf.UInt64Value - 5, // 495: xatu.ClientMeta.AdditionalNodeRecordConsensusData.finalized_epoch:type_name -> xatu.EpochV2 - 7, // 496: xatu.ClientMeta.AdditionalNodeRecordConsensusData.head_slot:type_name -> xatu.SlotV2 - 5, // 497: xatu.ClientMeta.AdditionalNodeRecordConsensusData.head_epoch:type_name -> xatu.EpochV2 - 5, // 498: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData.epoch:type_name -> xatu.EpochV2 - 7, // 499: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData.slot:type_name -> xatu.SlotV2 - 5, // 500: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData.epoch:type_name -> xatu.EpochV2 - 7, // 501: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData.slot:type_name -> xatu.SlotV2 - 5, // 502: xatu.ClientMeta.AdditionalEthV1BeaconBlobData.epoch:type_name -> xatu.EpochV2 - 7, // 503: xatu.ClientMeta.AdditionalEthV1BeaconBlobData.slot:type_name -> xatu.SlotV2 - 8, // 504: xatu.ClientMeta.Ethereum.Execution.fork_id:type_name -> xatu.ForkID - 144, // 505: xatu.ServerMeta.Event.received_date_time:type_name -> google.protobuf.Timestamp - 129, // 506: xatu.ServerMeta.Client.geo:type_name -> xatu.ServerMeta.Geo - 129, // 507: xatu.ServerMeta.Peer.geo:type_name -> xatu.ServerMeta.Geo - 131, // 508: xatu.ServerMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.ServerMeta.Peer - 131, // 509: xatu.ServerMeta.AdditionalLibp2PTraceConnectedData.peer:type_name -> xatu.ServerMeta.Peer - 131, // 510: xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData.peer:type_name -> xatu.ServerMeta.Peer - 131, // 511: xatu.ServerMeta.AdditionalLibP2PTraceSyntheticHeartbeatData.peer:type_name -> xatu.ServerMeta.Peer - 131, // 512: xatu.ServerMeta.AdditionalLibp2PTraceIdentifyData.peer:type_name -> xatu.ServerMeta.Peer - 129, // 513: xatu.ServerMeta.AdditionalNodeRecordConsensusData.geo:type_name -> xatu.ServerMeta.Geo - 129, // 514: xatu.ServerMeta.AdditionalNodeRecordExecutionData.geo:type_name -> xatu.ServerMeta.Geo - 143, // 515: xatu.ExecutionBlockMetrics.StateReads.accounts:type_name -> google.protobuf.UInt64Value - 143, // 516: xatu.ExecutionBlockMetrics.StateReads.storage_slots:type_name -> google.protobuf.UInt64Value - 143, // 517: xatu.ExecutionBlockMetrics.StateReads.code:type_name -> google.protobuf.UInt64Value - 143, // 518: xatu.ExecutionBlockMetrics.StateReads.code_bytes:type_name -> google.protobuf.UInt64Value - 143, // 519: xatu.ExecutionBlockMetrics.StateWrites.accounts:type_name -> google.protobuf.UInt64Value - 143, // 520: xatu.ExecutionBlockMetrics.StateWrites.accounts_deleted:type_name -> google.protobuf.UInt64Value - 143, // 521: xatu.ExecutionBlockMetrics.StateWrites.storage_slots:type_name -> google.protobuf.UInt64Value - 143, // 522: xatu.ExecutionBlockMetrics.StateWrites.storage_slots_deleted:type_name -> google.protobuf.UInt64Value - 143, // 523: xatu.ExecutionBlockMetrics.StateWrites.code:type_name -> google.protobuf.UInt64Value - 143, // 524: xatu.ExecutionBlockMetrics.StateWrites.code_bytes:type_name -> google.protobuf.UInt64Value - 226, // 525: xatu.ExecutionBlockMetrics.CacheEntry.hits:type_name -> google.protobuf.Int64Value - 226, // 526: xatu.ExecutionBlockMetrics.CacheEntry.misses:type_name -> google.protobuf.Int64Value - 153, // 527: xatu.ExecutionBlockMetrics.CacheEntry.hit_rate:type_name -> google.protobuf.DoubleValue - 226, // 528: xatu.ExecutionBlockMetrics.CodeCacheEntry.hits:type_name -> google.protobuf.Int64Value - 226, // 529: xatu.ExecutionBlockMetrics.CodeCacheEntry.misses:type_name -> google.protobuf.Int64Value - 153, // 530: xatu.ExecutionBlockMetrics.CodeCacheEntry.hit_rate:type_name -> google.protobuf.DoubleValue - 226, // 531: xatu.ExecutionBlockMetrics.CodeCacheEntry.hit_bytes:type_name -> google.protobuf.Int64Value - 226, // 532: xatu.ExecutionBlockMetrics.CodeCacheEntry.miss_bytes:type_name -> google.protobuf.Int64Value - 2, // 533: xatu.EventIngester.CreateEvents:input_type -> xatu.CreateEventsRequest - 3, // 534: xatu.EventIngester.CreateEvents:output_type -> xatu.CreateEventsResponse - 534, // [534:535] is the sub-list for method output_type - 533, // [533:534] is the sub-list for method input_type - 533, // [533:533] is the sub-list for extension type_name - 533, // [533:533] is the sub-list for extension extendee - 0, // [0:533] is the sub-list for field type_name + 221, // 251: xatu.DecoratedEvent.eth_v1_events_execution_payload:type_name -> xatu.eth.v1.SignedExecutionPayloadEnvelope + 222, // 252: xatu.DecoratedEvent.eth_v1_events_payload_attestation:type_name -> xatu.eth.v1.PayloadAttestationMessage + 223, // 253: xatu.DecoratedEvent.eth_v1_events_execution_payload_bid:type_name -> xatu.eth.v1.SignedExecutionPayloadBid + 224, // 254: xatu.DecoratedEvent.eth_v1_events_proposer_preferences:type_name -> xatu.eth.v1.SignedProposerPreferences + 225, // 255: xatu.DecoratedEvent.eth_v2_beacon_block_payload_attestation:type_name -> xatu.eth.v1.PayloadAttestation + 223, // 256: xatu.DecoratedEvent.eth_v2_beacon_block_execution_payload_bid:type_name -> xatu.eth.v1.SignedExecutionPayloadBid + 226, // 257: xatu.DecoratedEvent.libp2p_trace_gossipsub_execution_payload_envelope:type_name -> xatu.libp2p.gossipsub.eth.ExecutionPayloadEnvelope + 227, // 258: xatu.DecoratedEvent.libp2p_trace_gossipsub_execution_payload_bid:type_name -> xatu.libp2p.gossipsub.eth.ExecutionPayloadBid + 228, // 259: xatu.DecoratedEvent.libp2p_trace_gossipsub_payload_attestation_message:type_name -> xatu.libp2p.gossipsub.eth.PayloadAttestationMessage + 229, // 260: xatu.DecoratedEvent.libp2p_trace_gossipsub_proposer_preferences:type_name -> xatu.libp2p.gossipsub.eth.ProposerPreferences + 125, // 261: xatu.ClientMeta.Ethereum.network:type_name -> xatu.ClientMeta.Ethereum.Network + 126, // 262: xatu.ClientMeta.Ethereum.execution:type_name -> xatu.ClientMeta.Ethereum.Execution + 127, // 263: xatu.ClientMeta.Ethereum.consensus:type_name -> xatu.ClientMeta.Ethereum.Consensus + 4, // 264: xatu.ClientMeta.AdditionalEthV1AttestationSourceData.epoch:type_name -> xatu.Epoch + 5, // 265: xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data.epoch:type_name -> xatu.EpochV2 + 4, // 266: xatu.ClientMeta.AdditionalEthV1AttestationTargetData.epoch:type_name -> xatu.Epoch + 5, // 267: xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data.epoch:type_name -> xatu.EpochV2 + 32, // 268: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceData + 34, // 269: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetData + 6, // 270: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.slot:type_name -> xatu.Slot + 4, // 271: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.epoch:type_name -> xatu.Epoch + 9, // 272: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.propagation:type_name -> xatu.Propagation + 11, // 273: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.attesting_validator:type_name -> xatu.AttestingValidator + 33, // 274: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 35, // 275: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 7, // 276: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.slot:type_name -> xatu.SlotV2 + 5, // 277: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.epoch:type_name -> xatu.EpochV2 + 10, // 278: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.propagation:type_name -> xatu.PropagationV2 + 12, // 279: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.attesting_validator:type_name -> xatu.AttestingValidatorV2 + 4, // 280: xatu.ClientMeta.AdditionalEthV1EventsHeadData.epoch:type_name -> xatu.Epoch + 6, // 281: xatu.ClientMeta.AdditionalEthV1EventsHeadData.slot:type_name -> xatu.Slot + 9, // 282: xatu.ClientMeta.AdditionalEthV1EventsHeadData.propagation:type_name -> xatu.Propagation + 5, // 283: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.epoch:type_name -> xatu.EpochV2 + 7, // 284: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.slot:type_name -> xatu.SlotV2 + 10, // 285: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.propagation:type_name -> xatu.PropagationV2 + 4, // 286: xatu.ClientMeta.AdditionalEthV1EventsBlockData.epoch:type_name -> xatu.Epoch + 6, // 287: xatu.ClientMeta.AdditionalEthV1EventsBlockData.slot:type_name -> xatu.Slot + 9, // 288: xatu.ClientMeta.AdditionalEthV1EventsBlockData.propagation:type_name -> xatu.Propagation + 5, // 289: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.epoch:type_name -> xatu.EpochV2 + 7, // 290: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.slot:type_name -> xatu.SlotV2 + 10, // 291: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.propagation:type_name -> xatu.PropagationV2 + 5, // 292: xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData.epoch:type_name -> xatu.EpochV2 + 7, // 293: xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData.slot:type_name -> xatu.SlotV2 + 10, // 294: xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData.propagation:type_name -> xatu.PropagationV2 + 4, // 295: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitData.epoch:type_name -> xatu.Epoch + 5, // 296: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.epoch:type_name -> xatu.EpochV2 + 5, // 297: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 298: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.wallclock_slot:type_name -> xatu.SlotV2 + 4, // 299: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointData.epoch:type_name -> xatu.Epoch + 5, // 300: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointV2Data.epoch:type_name -> xatu.EpochV2 + 4, // 301: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.epoch:type_name -> xatu.Epoch + 6, // 302: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.slot:type_name -> xatu.Slot + 9, // 303: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.propagation:type_name -> xatu.Propagation + 5, // 304: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.epoch:type_name -> xatu.EpochV2 + 7, // 305: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.slot:type_name -> xatu.SlotV2 + 10, // 306: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.propagation:type_name -> xatu.PropagationV2 + 4, // 307: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.epoch:type_name -> xatu.Epoch + 6, // 308: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.slot:type_name -> xatu.Slot + 9, // 309: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.propagation:type_name -> xatu.Propagation + 5, // 310: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.epoch:type_name -> xatu.EpochV2 + 7, // 311: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.slot:type_name -> xatu.SlotV2 + 10, // 312: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.propagation:type_name -> xatu.PropagationV2 + 49, // 313: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofData.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData + 50, // 314: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofV2Data.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data + 4, // 315: xatu.ClientMeta.ForkChoiceSnapshot.request_epoch:type_name -> xatu.Epoch + 6, // 316: xatu.ClientMeta.ForkChoiceSnapshot.request_slot:type_name -> xatu.Slot + 144, // 317: xatu.ClientMeta.ForkChoiceSnapshot.timestamp:type_name -> google.protobuf.Timestamp + 5, // 318: xatu.ClientMeta.ForkChoiceSnapshotV2.request_epoch:type_name -> xatu.EpochV2 + 7, // 319: xatu.ClientMeta.ForkChoiceSnapshotV2.request_slot:type_name -> xatu.SlotV2 + 143, // 320: xatu.ClientMeta.ForkChoiceSnapshotV2.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value + 143, // 321: xatu.ClientMeta.ForkChoiceSnapshotV2.request_duration_ms:type_name -> google.protobuf.UInt64Value + 144, // 322: xatu.ClientMeta.ForkChoiceSnapshotV2.timestamp:type_name -> google.protobuf.Timestamp + 53, // 323: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshot + 54, // 324: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceV2Data.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 + 53, // 325: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshot + 53, // 326: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshot + 54, // 327: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 + 54, // 328: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 + 5, // 329: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.epoch:type_name -> xatu.EpochV2 + 7, // 330: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.slot:type_name -> xatu.SlotV2 + 5, // 331: xatu.ClientMeta.AdditionalEthV1BeaconSyncCommitteeData.epoch:type_name -> xatu.EpochV2 + 143, // 332: xatu.ClientMeta.AdditionalEthV1BeaconSyncCommitteeData.sync_committee_period:type_name -> google.protobuf.UInt64Value + 18, // 333: xatu.ClientMeta.AdditionalEthV2BeaconBlockSyncAggregateData.block:type_name -> xatu.BlockIdentifier + 143, // 334: xatu.ClientMeta.AdditionalEthV2BeaconBlockSyncAggregateData.sync_committee_period:type_name -> google.protobuf.UInt64Value + 143, // 335: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.nonce:type_name -> google.protobuf.UInt64Value + 143, // 336: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.gas:type_name -> google.protobuf.UInt64Value + 151, // 337: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.type:type_name -> google.protobuf.UInt32Value + 143, // 338: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.blob_gas:type_name -> google.protobuf.UInt64Value + 4, // 339: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.epoch:type_name -> xatu.Epoch + 6, // 340: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.slot:type_name -> xatu.Slot + 5, // 341: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.epoch:type_name -> xatu.EpochV2 + 7, // 342: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.slot:type_name -> xatu.SlotV2 + 143, // 343: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_count:type_name -> google.protobuf.UInt64Value + 143, // 344: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes:type_name -> google.protobuf.UInt64Value + 143, // 345: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes_compressed:type_name -> google.protobuf.UInt64Value + 143, // 346: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes:type_name -> google.protobuf.UInt64Value + 143, // 347: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes_compressed:type_name -> google.protobuf.UInt64Value + 18, // 348: xatu.ClientMeta.AdditionalEthV2BeaconBlockAttesterSlashingData.block:type_name -> xatu.BlockIdentifier + 18, // 349: xatu.ClientMeta.AdditionalEthV2BeaconBlockProposerSlashingData.block:type_name -> xatu.BlockIdentifier + 18, // 350: xatu.ClientMeta.AdditionalEthV2BeaconBlockVoluntaryExitData.block:type_name -> xatu.BlockIdentifier + 18, // 351: xatu.ClientMeta.AdditionalEthV2BeaconBlockDepositData.block:type_name -> xatu.BlockIdentifier + 18, // 352: xatu.ClientMeta.AdditionalEthV2BeaconBlockBLSToExecutionChangeData.block:type_name -> xatu.BlockIdentifier + 18, // 353: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.block:type_name -> xatu.BlockIdentifier + 143, // 354: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.position_in_block:type_name -> google.protobuf.UInt64Value + 18, // 355: xatu.ClientMeta.AdditionalEthV2BeaconBlockWithdrawalData.block:type_name -> xatu.BlockIdentifier + 18, // 356: xatu.ClientMeta.AdditionalEthV2BeaconBlockAccessListData.block:type_name -> xatu.BlockIdentifier + 143, // 357: xatu.ClientMeta.AdditionalEthV2BeaconBlockAccessListData.block_number:type_name -> google.protobuf.UInt64Value + 143, // 358: xatu.ClientMeta.AttestationDataSnapshot.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value + 143, // 359: xatu.ClientMeta.AttestationDataSnapshot.request_duration_ms:type_name -> google.protobuf.UInt64Value + 144, // 360: xatu.ClientMeta.AttestationDataSnapshot.timestamp:type_name -> google.protobuf.Timestamp + 33, // 361: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 35, // 362: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 5, // 363: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.epoch:type_name -> xatu.EpochV2 + 7, // 364: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.slot:type_name -> xatu.SlotV2 + 74, // 365: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.Snapshot:type_name -> xatu.ClientMeta.AttestationDataSnapshot + 5, // 366: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 367: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.slot:type_name -> xatu.SlotV2 + 10, // 368: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.propagation:type_name -> xatu.PropagationV2 + 5, // 369: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 370: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.slot:type_name -> xatu.SlotV2 + 10, // 371: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.propagation:type_name -> xatu.PropagationV2 + 5, // 372: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 373: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.slot:type_name -> xatu.SlotV2 + 143, // 374: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_size:type_name -> google.protobuf.UInt64Value + 143, // 375: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_empty_size:type_name -> google.protobuf.UInt64Value + 33, // 376: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 35, // 377: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 7, // 378: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.slot:type_name -> xatu.SlotV2 + 5, // 379: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.epoch:type_name -> xatu.EpochV2 + 10, // 380: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.propagation:type_name -> xatu.PropagationV2 + 12, // 381: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 + 230, // 382: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.libp2p.Peer + 151, // 383: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.subnet:type_name -> google.protobuf.UInt32Value + 231, // 384: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.validated:type_name -> google.protobuf.BoolValue + 5, // 385: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.epoch:type_name -> xatu.EpochV2 + 7, // 386: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.slot:type_name -> xatu.SlotV2 + 18, // 387: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.block:type_name -> xatu.BlockIdentifier + 143, // 388: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.position_in_block:type_name -> google.protobuf.UInt64Value + 5, // 389: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.epoch:type_name -> xatu.EpochV2 + 7, // 390: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.slot:type_name -> xatu.SlotV2 + 33, // 391: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 35, // 392: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 232, // 393: xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 394: xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 395: xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 396: xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 397: xatu.ClientMeta.AdditionalLibP2PTraceDropRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 398: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIHaveData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 399: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIWantData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 400: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIDontWantData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 401: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlGraftData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 402: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlPruneData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 403: xatu.ClientMeta.AdditionalLibP2PTraceJoinData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 404: xatu.ClientMeta.AdditionalLibP2PTraceLeaveData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 405: xatu.ClientMeta.AdditionalLibP2PTraceGraftData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 406: xatu.ClientMeta.AdditionalLibP2PTracePruneData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 407: xatu.ClientMeta.AdditionalLibP2PTraceDuplicateMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 408: xatu.ClientMeta.AdditionalLibP2PTraceDeliverMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 409: xatu.ClientMeta.AdditionalLibP2PTracePublishMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 410: xatu.ClientMeta.AdditionalLibP2PTraceRejectMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 411: xatu.ClientMeta.AdditionalLibP2PTraceConnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 412: xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 413: xatu.ClientMeta.AdditionalLibP2PTraceSyntheticHeartbeatData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 414: xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 415: xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 416: xatu.ClientMeta.AdditionalLibP2PTraceIdentifyData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 417: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 5, // 418: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.epoch:type_name -> xatu.EpochV2 + 7, // 419: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.slot:type_name -> xatu.SlotV2 + 5, // 420: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 421: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.wallclock_slot:type_name -> xatu.SlotV2 + 232, // 422: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaSubscriptionData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 232, // 423: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 5, // 424: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.epoch:type_name -> xatu.EpochV2 + 7, // 425: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.slot:type_name -> xatu.SlotV2 + 5, // 426: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 427: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 428: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.propagation:type_name -> xatu.PropagationV2 + 232, // 429: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 233, // 430: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.topic:type_name -> google.protobuf.StringValue + 151, // 431: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_size:type_name -> google.protobuf.UInt32Value + 233, // 432: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_id:type_name -> google.protobuf.StringValue + 5, // 433: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData.epoch:type_name -> xatu.EpochV2 + 5, // 434: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData.epoch:type_name -> xatu.EpochV2 + 110, // 435: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.source:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData + 111, // 436: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.target:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData + 7, // 437: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.slot:type_name -> xatu.SlotV2 + 5, // 438: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.epoch:type_name -> xatu.EpochV2 + 10, // 439: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.propagation:type_name -> xatu.PropagationV2 + 12, // 440: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 + 5, // 441: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 442: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_slot:type_name -> xatu.SlotV2 + 232, // 443: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 233, // 444: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.topic:type_name -> google.protobuf.StringValue + 151, // 445: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_size:type_name -> google.protobuf.UInt32Value + 233, // 446: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_id:type_name -> google.protobuf.StringValue + 5, // 447: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.epoch:type_name -> xatu.EpochV2 + 7, // 448: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.slot:type_name -> xatu.SlotV2 + 5, // 449: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 450: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 451: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.propagation:type_name -> xatu.PropagationV2 + 143, // 452: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.aggregator_index:type_name -> google.protobuf.UInt64Value + 232, // 453: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 233, // 454: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.topic:type_name -> google.protobuf.StringValue + 151, // 455: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.message_size:type_name -> google.protobuf.UInt32Value + 233, // 456: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.message_id:type_name -> google.protobuf.StringValue + 5, // 457: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 458: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.slot:type_name -> xatu.SlotV2 + 5, // 459: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 460: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 461: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.propagation:type_name -> xatu.PropagationV2 + 232, // 462: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 233, // 463: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.topic:type_name -> google.protobuf.StringValue + 151, // 464: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_size:type_name -> google.protobuf.UInt32Value + 233, // 465: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_id:type_name -> google.protobuf.StringValue + 5, // 466: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 467: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.slot:type_name -> xatu.SlotV2 + 5, // 468: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 469: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 470: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.propagation:type_name -> xatu.PropagationV2 + 232, // 471: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 233, // 472: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.topic:type_name -> google.protobuf.StringValue + 151, // 473: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.message_size:type_name -> google.protobuf.UInt32Value + 233, // 474: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.message_id:type_name -> google.protobuf.StringValue + 5, // 475: xatu.ClientMeta.AdditionalEthV1ValidatorsData.epoch:type_name -> xatu.EpochV2 + 234, // 476: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.relay:type_name -> xatu.mevrelay.Relay + 7, // 477: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.slot:type_name -> xatu.SlotV2 + 7, // 478: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.wallclock_slot:type_name -> xatu.SlotV2 + 5, // 479: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.epoch:type_name -> xatu.EpochV2 + 5, // 480: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.wallclock_epoch:type_name -> xatu.EpochV2 + 143, // 481: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.requested_at_slot_time:type_name -> google.protobuf.UInt64Value + 143, // 482: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.response_at_slot_time:type_name -> google.protobuf.UInt64Value + 234, // 483: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.relay:type_name -> xatu.mevrelay.Relay + 7, // 484: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.slot:type_name -> xatu.SlotV2 + 7, // 485: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.wallclock_slot:type_name -> xatu.SlotV2 + 5, // 486: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.epoch:type_name -> xatu.EpochV2 + 5, // 487: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.wallclock_epoch:type_name -> xatu.EpochV2 + 143, // 488: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.requested_at_slot_time:type_name -> google.protobuf.UInt64Value + 143, // 489: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.response_at_slot_time:type_name -> google.protobuf.UInt64Value + 5, // 490: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.epoch:type_name -> xatu.EpochV2 + 7, // 491: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.slot:type_name -> xatu.SlotV2 + 143, // 492: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_count:type_name -> google.protobuf.UInt64Value + 143, // 493: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_total_bytes:type_name -> google.protobuf.UInt64Value + 143, // 494: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_total_bytes_compressed:type_name -> google.protobuf.UInt64Value + 143, // 495: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.total_bytes:type_name -> google.protobuf.UInt64Value + 143, // 496: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.total_bytes_compressed:type_name -> google.protobuf.UInt64Value + 143, // 497: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.request_duration_ms:type_name -> google.protobuf.UInt64Value + 144, // 498: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.requested_at:type_name -> google.protobuf.Timestamp + 234, // 499: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.relay:type_name -> xatu.mevrelay.Relay + 7, // 500: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.slot:type_name -> xatu.SlotV2 + 7, // 501: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.wallclock_slot:type_name -> xatu.SlotV2 + 5, // 502: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.epoch:type_name -> xatu.EpochV2 + 5, // 503: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.wallclock_epoch:type_name -> xatu.EpochV2 + 143, // 504: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.validator_index:type_name -> google.protobuf.UInt64Value + 5, // 505: xatu.ClientMeta.AdditionalNodeRecordConsensusData.finalized_epoch:type_name -> xatu.EpochV2 + 7, // 506: xatu.ClientMeta.AdditionalNodeRecordConsensusData.head_slot:type_name -> xatu.SlotV2 + 5, // 507: xatu.ClientMeta.AdditionalNodeRecordConsensusData.head_epoch:type_name -> xatu.EpochV2 + 5, // 508: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData.epoch:type_name -> xatu.EpochV2 + 7, // 509: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData.slot:type_name -> xatu.SlotV2 + 5, // 510: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData.epoch:type_name -> xatu.EpochV2 + 7, // 511: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData.slot:type_name -> xatu.SlotV2 + 5, // 512: xatu.ClientMeta.AdditionalEthV1BeaconBlobData.epoch:type_name -> xatu.EpochV2 + 7, // 513: xatu.ClientMeta.AdditionalEthV1BeaconBlobData.slot:type_name -> xatu.SlotV2 + 8, // 514: xatu.ClientMeta.Ethereum.Execution.fork_id:type_name -> xatu.ForkID + 144, // 515: xatu.ServerMeta.Event.received_date_time:type_name -> google.protobuf.Timestamp + 129, // 516: xatu.ServerMeta.Client.geo:type_name -> xatu.ServerMeta.Geo + 129, // 517: xatu.ServerMeta.Peer.geo:type_name -> xatu.ServerMeta.Geo + 131, // 518: xatu.ServerMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.ServerMeta.Peer + 131, // 519: xatu.ServerMeta.AdditionalLibp2PTraceConnectedData.peer:type_name -> xatu.ServerMeta.Peer + 131, // 520: xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData.peer:type_name -> xatu.ServerMeta.Peer + 131, // 521: xatu.ServerMeta.AdditionalLibP2PTraceSyntheticHeartbeatData.peer:type_name -> xatu.ServerMeta.Peer + 131, // 522: xatu.ServerMeta.AdditionalLibp2PTraceIdentifyData.peer:type_name -> xatu.ServerMeta.Peer + 129, // 523: xatu.ServerMeta.AdditionalNodeRecordConsensusData.geo:type_name -> xatu.ServerMeta.Geo + 129, // 524: xatu.ServerMeta.AdditionalNodeRecordExecutionData.geo:type_name -> xatu.ServerMeta.Geo + 143, // 525: xatu.ExecutionBlockMetrics.StateReads.accounts:type_name -> google.protobuf.UInt64Value + 143, // 526: xatu.ExecutionBlockMetrics.StateReads.storage_slots:type_name -> google.protobuf.UInt64Value + 143, // 527: xatu.ExecutionBlockMetrics.StateReads.code:type_name -> google.protobuf.UInt64Value + 143, // 528: xatu.ExecutionBlockMetrics.StateReads.code_bytes:type_name -> google.protobuf.UInt64Value + 143, // 529: xatu.ExecutionBlockMetrics.StateWrites.accounts:type_name -> google.protobuf.UInt64Value + 143, // 530: xatu.ExecutionBlockMetrics.StateWrites.accounts_deleted:type_name -> google.protobuf.UInt64Value + 143, // 531: xatu.ExecutionBlockMetrics.StateWrites.storage_slots:type_name -> google.protobuf.UInt64Value + 143, // 532: xatu.ExecutionBlockMetrics.StateWrites.storage_slots_deleted:type_name -> google.protobuf.UInt64Value + 143, // 533: xatu.ExecutionBlockMetrics.StateWrites.code:type_name -> google.protobuf.UInt64Value + 143, // 534: xatu.ExecutionBlockMetrics.StateWrites.code_bytes:type_name -> google.protobuf.UInt64Value + 235, // 535: xatu.ExecutionBlockMetrics.CacheEntry.hits:type_name -> google.protobuf.Int64Value + 235, // 536: xatu.ExecutionBlockMetrics.CacheEntry.misses:type_name -> google.protobuf.Int64Value + 153, // 537: xatu.ExecutionBlockMetrics.CacheEntry.hit_rate:type_name -> google.protobuf.DoubleValue + 235, // 538: xatu.ExecutionBlockMetrics.CodeCacheEntry.hits:type_name -> google.protobuf.Int64Value + 235, // 539: xatu.ExecutionBlockMetrics.CodeCacheEntry.misses:type_name -> google.protobuf.Int64Value + 153, // 540: xatu.ExecutionBlockMetrics.CodeCacheEntry.hit_rate:type_name -> google.protobuf.DoubleValue + 235, // 541: xatu.ExecutionBlockMetrics.CodeCacheEntry.hit_bytes:type_name -> google.protobuf.Int64Value + 235, // 542: xatu.ExecutionBlockMetrics.CodeCacheEntry.miss_bytes:type_name -> google.protobuf.Int64Value + 2, // 543: xatu.EventIngester.CreateEvents:input_type -> xatu.CreateEventsRequest + 3, // 544: xatu.EventIngester.CreateEvents:output_type -> xatu.CreateEventsResponse + 544, // [544:545] is the sub-list for method output_type + 543, // [543:544] is the sub-list for method input_type + 543, // [543:543] is the sub-list for extension type_name + 543, // [543:543] is the sub-list for extension extendee + 0, // [0:543] is the sub-list for field type_name } func init() { file_pkg_proto_xatu_event_ingester_proto_init() } @@ -19006,6 +19337,16 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { (*DecoratedEvent_EthV2BeaconBlockSyncAggregate)(nil), (*DecoratedEvent_ExecutionBlockMetrics)(nil), (*DecoratedEvent_EthV2BeaconBlockAccessList)(nil), + (*DecoratedEvent_EthV1EventsExecutionPayload)(nil), + (*DecoratedEvent_EthV1EventsPayloadAttestation)(nil), + (*DecoratedEvent_EthV1EventsExecutionPayloadBid)(nil), + (*DecoratedEvent_EthV1EventsProposerPreferences)(nil), + (*DecoratedEvent_EthV2BeaconBlockPayloadAttestation)(nil), + (*DecoratedEvent_EthV2BeaconBlockExecutionPayloadBid)(nil), + (*DecoratedEvent_Libp2PTraceGossipsubExecutionPayloadEnvelope)(nil), + (*DecoratedEvent_Libp2PTraceGossipsubExecutionPayloadBid)(nil), + (*DecoratedEvent_Libp2PTraceGossipsubPayloadAttestationMessage)(nil), + (*DecoratedEvent_Libp2PTraceGossipsubProposerPreferences)(nil), } type x struct{} out := protoimpl.TypeBuilder{ diff --git a/pkg/proto/xatu/event_ingester.proto b/pkg/proto/xatu/event_ingester.proto index afeee6271..8d0403ba2 100644 --- a/pkg/proto/xatu/event_ingester.proto +++ b/pkg/proto/xatu/event_ingester.proto @@ -2345,14 +2345,14 @@ message DecoratedEvent { xatu.eth.v1.SignedExecutionPayloadBid eth_v2_beacon_block_execution_payload_bid = 216 [ json_name = "BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID" ]; - // EIP-7732 ePBS: P2P gossip events - xatu.eth.v1.SignedExecutionPayloadEnvelope libp2p_trace_gossipsub_execution_payload_envelope = 217 + // EIP-7732 ePBS: P2P gossip events (use gossipsub summary types) + xatu.libp2p.gossipsub.eth.ExecutionPayloadEnvelope libp2p_trace_gossipsub_execution_payload_envelope = 217 [ json_name = "LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_ENVELOPE" ]; - xatu.eth.v1.SignedExecutionPayloadBid libp2p_trace_gossipsub_execution_payload_bid = 218 + xatu.libp2p.gossipsub.eth.ExecutionPayloadBid libp2p_trace_gossipsub_execution_payload_bid = 218 [ json_name = "LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_BID" ]; - xatu.eth.v1.PayloadAttestationMessage libp2p_trace_gossipsub_payload_attestation_message = 219 + xatu.libp2p.gossipsub.eth.PayloadAttestationMessage libp2p_trace_gossipsub_payload_attestation_message = 219 [ json_name = "LIBP2P_TRACE_GOSSIPSUB_PAYLOAD_ATTESTATION_MESSAGE" ]; - xatu.eth.v1.SignedProposerPreferences libp2p_trace_gossipsub_proposer_preferences = 220 + xatu.libp2p.gossipsub.eth.ProposerPreferences libp2p_trace_gossipsub_proposer_preferences = 220 [ json_name = "LIBP2P_TRACE_GOSSIPSUB_PROPOSER_PREFERENCES" ]; }; } diff --git a/pkg/server/service/event-ingester/event/beacon/eth/v1/events_execution_payload.go b/pkg/server/service/event-ingester/event/beacon/eth/v1/events_execution_payload.go new file mode 100644 index 000000000..614fbb491 --- /dev/null +++ b/pkg/server/service/event-ingester/event/beacon/eth/v1/events_execution_payload.go @@ -0,0 +1,46 @@ +package v1 + +import ( + "context" + "errors" + + "github.com/ethpandaops/xatu/pkg/proto/xatu" + "github.com/sirupsen/logrus" +) + +const ( + EventsExecutionPayloadType = "BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD" +) + +type EventsExecutionPayload struct { + log logrus.FieldLogger + event *xatu.DecoratedEvent +} + +func NewEventsExecutionPayload(log logrus.FieldLogger, event *xatu.DecoratedEvent) *EventsExecutionPayload { + return &EventsExecutionPayload{ + log: log.WithField("event", EventsExecutionPayloadType), + event: event, + } +} + +func (e *EventsExecutionPayload) Type() string { + return EventsExecutionPayloadType +} + +func (e *EventsExecutionPayload) Validate(_ context.Context) error { + _, ok := e.event.GetData().(*xatu.DecoratedEvent_EthV1EventsExecutionPayload) + if !ok { + return errors.New("failed to cast event data") + } + + return nil +} + +func (e *EventsExecutionPayload) Filter(_ context.Context) bool { + return false +} + +func (e *EventsExecutionPayload) AppendServerMeta(_ context.Context, meta *xatu.ServerMeta) *xatu.ServerMeta { + return meta +} diff --git a/pkg/server/service/event-ingester/event/beacon/eth/v1/events_execution_payload_bid.go b/pkg/server/service/event-ingester/event/beacon/eth/v1/events_execution_payload_bid.go new file mode 100644 index 000000000..95c9ca5a4 --- /dev/null +++ b/pkg/server/service/event-ingester/event/beacon/eth/v1/events_execution_payload_bid.go @@ -0,0 +1,46 @@ +package v1 + +import ( + "context" + "errors" + + "github.com/ethpandaops/xatu/pkg/proto/xatu" + "github.com/sirupsen/logrus" +) + +const ( + EventsExecutionPayloadBidType = "BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD_BID" +) + +type EventsExecutionPayloadBid struct { + log logrus.FieldLogger + event *xatu.DecoratedEvent +} + +func NewEventsExecutionPayloadBid(log logrus.FieldLogger, event *xatu.DecoratedEvent) *EventsExecutionPayloadBid { + return &EventsExecutionPayloadBid{ + log: log.WithField("event", EventsExecutionPayloadBidType), + event: event, + } +} + +func (e *EventsExecutionPayloadBid) Type() string { + return EventsExecutionPayloadBidType +} + +func (e *EventsExecutionPayloadBid) Validate(_ context.Context) error { + _, ok := e.event.GetData().(*xatu.DecoratedEvent_EthV1EventsExecutionPayloadBid) + if !ok { + return errors.New("failed to cast event data") + } + + return nil +} + +func (e *EventsExecutionPayloadBid) Filter(_ context.Context) bool { + return false +} + +func (e *EventsExecutionPayloadBid) AppendServerMeta(_ context.Context, meta *xatu.ServerMeta) *xatu.ServerMeta { + return meta +} diff --git a/pkg/server/service/event-ingester/event/beacon/eth/v1/events_payload_attestation.go b/pkg/server/service/event-ingester/event/beacon/eth/v1/events_payload_attestation.go new file mode 100644 index 000000000..94f4c5084 --- /dev/null +++ b/pkg/server/service/event-ingester/event/beacon/eth/v1/events_payload_attestation.go @@ -0,0 +1,46 @@ +package v1 + +import ( + "context" + "errors" + + "github.com/ethpandaops/xatu/pkg/proto/xatu" + "github.com/sirupsen/logrus" +) + +const ( + EventsPayloadAttestationType = "BEACON_API_ETH_V1_EVENTS_PAYLOAD_ATTESTATION" +) + +type EventsPayloadAttestation struct { + log logrus.FieldLogger + event *xatu.DecoratedEvent +} + +func NewEventsPayloadAttestation(log logrus.FieldLogger, event *xatu.DecoratedEvent) *EventsPayloadAttestation { + return &EventsPayloadAttestation{ + log: log.WithField("event", EventsPayloadAttestationType), + event: event, + } +} + +func (e *EventsPayloadAttestation) Type() string { + return EventsPayloadAttestationType +} + +func (e *EventsPayloadAttestation) Validate(_ context.Context) error { + _, ok := e.event.GetData().(*xatu.DecoratedEvent_EthV1EventsPayloadAttestation) + if !ok { + return errors.New("failed to cast event data") + } + + return nil +} + +func (e *EventsPayloadAttestation) Filter(_ context.Context) bool { + return false +} + +func (e *EventsPayloadAttestation) AppendServerMeta(_ context.Context, meta *xatu.ServerMeta) *xatu.ServerMeta { + return meta +} diff --git a/pkg/server/service/event-ingester/event/beacon/eth/v1/events_proposer_preferences.go b/pkg/server/service/event-ingester/event/beacon/eth/v1/events_proposer_preferences.go new file mode 100644 index 000000000..2ea3c8c8f --- /dev/null +++ b/pkg/server/service/event-ingester/event/beacon/eth/v1/events_proposer_preferences.go @@ -0,0 +1,46 @@ +package v1 + +import ( + "context" + "errors" + + "github.com/ethpandaops/xatu/pkg/proto/xatu" + "github.com/sirupsen/logrus" +) + +const ( + EventsProposerPreferencesType = "BEACON_API_ETH_V1_EVENTS_PROPOSER_PREFERENCES" +) + +type EventsProposerPreferences struct { + log logrus.FieldLogger + event *xatu.DecoratedEvent +} + +func NewEventsProposerPreferences(log logrus.FieldLogger, event *xatu.DecoratedEvent) *EventsProposerPreferences { + return &EventsProposerPreferences{ + log: log.WithField("event", EventsProposerPreferencesType), + event: event, + } +} + +func (e *EventsProposerPreferences) Type() string { + return EventsProposerPreferencesType +} + +func (e *EventsProposerPreferences) Validate(_ context.Context) error { + _, ok := e.event.GetData().(*xatu.DecoratedEvent_EthV1EventsProposerPreferences) + if !ok { + return errors.New("failed to cast event data") + } + + return nil +} + +func (e *EventsProposerPreferences) Filter(_ context.Context) bool { + return false +} + +func (e *EventsProposerPreferences) AppendServerMeta(_ context.Context, meta *xatu.ServerMeta) *xatu.ServerMeta { + return meta +} diff --git a/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_execution_payload_bid.go b/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_execution_payload_bid.go new file mode 100644 index 000000000..2a8cf6534 --- /dev/null +++ b/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_execution_payload_bid.go @@ -0,0 +1,46 @@ +package v2 + +import ( + "context" + "errors" + + "github.com/ethpandaops/xatu/pkg/proto/xatu" + "github.com/sirupsen/logrus" +) + +const ( + BeaconBlockExecutionPayloadBidType = "BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID" +) + +type BeaconBlockExecutionPayloadBid struct { + log logrus.FieldLogger + event *xatu.DecoratedEvent +} + +func NewBeaconBlockExecutionPayloadBid(log logrus.FieldLogger, event *xatu.DecoratedEvent) *BeaconBlockExecutionPayloadBid { + return &BeaconBlockExecutionPayloadBid{ + log: log.WithField("event", BeaconBlockExecutionPayloadBidType), + event: event, + } +} + +func (b *BeaconBlockExecutionPayloadBid) Type() string { + return BeaconBlockExecutionPayloadBidType +} + +func (b *BeaconBlockExecutionPayloadBid) Validate(_ context.Context) error { + _, ok := b.event.GetData().(*xatu.DecoratedEvent_EthV2BeaconBlockExecutionPayloadBid) + if !ok { + return errors.New("failed to cast event data") + } + + return nil +} + +func (b *BeaconBlockExecutionPayloadBid) Filter(_ context.Context) bool { + return false +} + +func (b *BeaconBlockExecutionPayloadBid) AppendServerMeta(_ context.Context, meta *xatu.ServerMeta) *xatu.ServerMeta { + return meta +} diff --git a/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_payload_attestation.go b/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_payload_attestation.go new file mode 100644 index 000000000..8f757abbd --- /dev/null +++ b/pkg/server/service/event-ingester/event/beacon/eth/v2/beacon_block_payload_attestation.go @@ -0,0 +1,46 @@ +package v2 + +import ( + "context" + "errors" + + "github.com/ethpandaops/xatu/pkg/proto/xatu" + "github.com/sirupsen/logrus" +) + +const ( + BeaconBlockPayloadAttestationType = "BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION" +) + +type BeaconBlockPayloadAttestation struct { + log logrus.FieldLogger + event *xatu.DecoratedEvent +} + +func NewBeaconBlockPayloadAttestation(log logrus.FieldLogger, event *xatu.DecoratedEvent) *BeaconBlockPayloadAttestation { + return &BeaconBlockPayloadAttestation{ + log: log.WithField("event", BeaconBlockPayloadAttestationType), + event: event, + } +} + +func (b *BeaconBlockPayloadAttestation) Type() string { + return BeaconBlockPayloadAttestationType +} + +func (b *BeaconBlockPayloadAttestation) Validate(_ context.Context) error { + _, ok := b.event.GetData().(*xatu.DecoratedEvent_EthV2BeaconBlockPayloadAttestation) + if !ok { + return errors.New("failed to cast event data") + } + + return nil +} + +func (b *BeaconBlockPayloadAttestation) Filter(_ context.Context) bool { + return false +} + +func (b *BeaconBlockPayloadAttestation) AppendServerMeta(_ context.Context, meta *xatu.ServerMeta) *xatu.ServerMeta { + return meta +} diff --git a/pkg/server/service/event-ingester/event/event.go b/pkg/server/service/event-ingester/event/event.go index b8434f2bf..e9f54868e 100644 --- a/pkg/server/service/event-ingester/event/event.go +++ b/pkg/server/service/event-ingester/event/event.go @@ -112,6 +112,22 @@ var ( TypeLibP2PTraceSyntheticHeartbeat Type = Type(libp2p.TraceSyntheticHeartbeatType) TypeLibP2PTraceIdentify Type = Type(libp2p.TraceIdentifyType) TypeLibP2PRPCDataColumnCustodyProbe Type = Type(libp2p.TypeLibp2pRPCDataColumnCustodyProbe) + + // EIP-7732 ePBS: Sentry SSE events + TypeBeaconETHV1EventsExecutionPayload Type = v1.EventsExecutionPayloadType + TypeBeaconETHV1EventsPayloadAttestation Type = v1.EventsPayloadAttestationType + TypeBeaconETHV1EventsExecutionPayloadBid Type = v1.EventsExecutionPayloadBidType + TypeBeaconETHV1EventsProposerPreferences Type = v1.EventsProposerPreferencesType + + // EIP-7732 ePBS: Cannon derived events + TypeBeaconEthV2BeaconBlockPayloadAttestation Type = v2.BeaconBlockPayloadAttestationType + TypeBeaconEthV2BeaconBlockExecutionPayloadBid Type = v2.BeaconBlockExecutionPayloadBidType + + // EIP-7732 ePBS: P2P gossip events + TypeLibP2PTraceGossipSubExecutionPayloadEnvelope Type = Type(libp2p.TraceGossipSubExecutionPayloadEnvelopeType) + TypeLibP2PTraceGossipSubExecutionPayloadBid Type = Type(libp2p.TraceGossipSubExecutionPayloadBidType) + TypeLibP2PTraceGossipSubPayloadAttestationMessage Type = Type(libp2p.TraceGossipSubPayloadAttestationMessageType) + TypeLibP2PTraceGossipSubProposerPreferences Type = Type(libp2p.TraceGossipSubProposerPreferencesType) ) type Event interface { @@ -401,6 +417,42 @@ func NewEventRouter(log logrus.FieldLogger, cache store.Cache, geoipProvider geo return libp2p.NewDataColumnCustodyProbe(router.log, event), nil }) + // EIP-7732 ePBS: Sentry SSE events + router.RegisterHandler(TypeBeaconETHV1EventsExecutionPayload, func(event *xatu.DecoratedEvent, router *EventRouter) (Event, error) { + return v1.NewEventsExecutionPayload(router.log, event), nil + }) + router.RegisterHandler(TypeBeaconETHV1EventsPayloadAttestation, func(event *xatu.DecoratedEvent, router *EventRouter) (Event, error) { + return v1.NewEventsPayloadAttestation(router.log, event), nil + }) + router.RegisterHandler(TypeBeaconETHV1EventsExecutionPayloadBid, func(event *xatu.DecoratedEvent, router *EventRouter) (Event, error) { + return v1.NewEventsExecutionPayloadBid(router.log, event), nil + }) + router.RegisterHandler(TypeBeaconETHV1EventsProposerPreferences, func(event *xatu.DecoratedEvent, router *EventRouter) (Event, error) { + return v1.NewEventsProposerPreferences(router.log, event), nil + }) + + // EIP-7732 ePBS: Cannon derived events + router.RegisterHandler(TypeBeaconEthV2BeaconBlockPayloadAttestation, func(event *xatu.DecoratedEvent, router *EventRouter) (Event, error) { + return v2.NewBeaconBlockPayloadAttestation(router.log, event), nil + }) + router.RegisterHandler(TypeBeaconEthV2BeaconBlockExecutionPayloadBid, func(event *xatu.DecoratedEvent, router *EventRouter) (Event, error) { + return v2.NewBeaconBlockExecutionPayloadBid(router.log, event), nil + }) + + // EIP-7732 ePBS: P2P gossip events + router.RegisterHandler(TypeLibP2PTraceGossipSubExecutionPayloadEnvelope, func(event *xatu.DecoratedEvent, router *EventRouter) (Event, error) { + return libp2p.NewTraceGossipSubExecutionPayloadEnvelope(router.log, event), nil + }) + router.RegisterHandler(TypeLibP2PTraceGossipSubExecutionPayloadBid, func(event *xatu.DecoratedEvent, router *EventRouter) (Event, error) { + return libp2p.NewTraceGossipSubExecutionPayloadBid(router.log, event), nil + }) + router.RegisterHandler(TypeLibP2PTraceGossipSubPayloadAttestationMessage, func(event *xatu.DecoratedEvent, router *EventRouter) (Event, error) { + return libp2p.NewTraceGossipSubPayloadAttestationMessage(router.log, event), nil + }) + router.RegisterHandler(TypeLibP2PTraceGossipSubProposerPreferences, func(event *xatu.DecoratedEvent, router *EventRouter) (Event, error) { + return libp2p.NewTraceGossipSubProposerPreferences(router.log, event), nil + }) + return router } diff --git a/pkg/server/service/event-ingester/event/libp2p/trace_gossipsub_execution_payload_bid.go b/pkg/server/service/event-ingester/event/libp2p/trace_gossipsub_execution_payload_bid.go new file mode 100644 index 000000000..1b0f41e54 --- /dev/null +++ b/pkg/server/service/event-ingester/event/libp2p/trace_gossipsub_execution_payload_bid.go @@ -0,0 +1,46 @@ +package libp2p + +import ( + "context" + "errors" + + "github.com/ethpandaops/xatu/pkg/proto/xatu" + "github.com/sirupsen/logrus" +) + +const ( + TraceGossipSubExecutionPayloadBidType = "LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_BID" +) + +type TraceGossipSubExecutionPayloadBid struct { + log logrus.FieldLogger + event *xatu.DecoratedEvent +} + +func NewTraceGossipSubExecutionPayloadBid(log logrus.FieldLogger, event *xatu.DecoratedEvent) *TraceGossipSubExecutionPayloadBid { + return &TraceGossipSubExecutionPayloadBid{ + log: log.WithField("event", TraceGossipSubExecutionPayloadBidType), + event: event, + } +} + +func (e *TraceGossipSubExecutionPayloadBid) Type() string { + return TraceGossipSubExecutionPayloadBidType +} + +func (e *TraceGossipSubExecutionPayloadBid) Validate(_ context.Context) error { + _, ok := e.event.GetData().(*xatu.DecoratedEvent_Libp2PTraceGossipsubExecutionPayloadBid) + if !ok { + return errors.New("failed to cast event data") + } + + return nil +} + +func (e *TraceGossipSubExecutionPayloadBid) Filter(_ context.Context) bool { + return false +} + +func (e *TraceGossipSubExecutionPayloadBid) AppendServerMeta(_ context.Context, meta *xatu.ServerMeta) *xatu.ServerMeta { + return meta +} diff --git a/pkg/server/service/event-ingester/event/libp2p/trace_gossipsub_execution_payload_envelope.go b/pkg/server/service/event-ingester/event/libp2p/trace_gossipsub_execution_payload_envelope.go new file mode 100644 index 000000000..12e678323 --- /dev/null +++ b/pkg/server/service/event-ingester/event/libp2p/trace_gossipsub_execution_payload_envelope.go @@ -0,0 +1,46 @@ +package libp2p + +import ( + "context" + "errors" + + "github.com/ethpandaops/xatu/pkg/proto/xatu" + "github.com/sirupsen/logrus" +) + +const ( + TraceGossipSubExecutionPayloadEnvelopeType = "LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_ENVELOPE" +) + +type TraceGossipSubExecutionPayloadEnvelope struct { + log logrus.FieldLogger + event *xatu.DecoratedEvent +} + +func NewTraceGossipSubExecutionPayloadEnvelope(log logrus.FieldLogger, event *xatu.DecoratedEvent) *TraceGossipSubExecutionPayloadEnvelope { + return &TraceGossipSubExecutionPayloadEnvelope{ + log: log.WithField("event", TraceGossipSubExecutionPayloadEnvelopeType), + event: event, + } +} + +func (e *TraceGossipSubExecutionPayloadEnvelope) Type() string { + return TraceGossipSubExecutionPayloadEnvelopeType +} + +func (e *TraceGossipSubExecutionPayloadEnvelope) Validate(_ context.Context) error { + _, ok := e.event.GetData().(*xatu.DecoratedEvent_Libp2PTraceGossipsubExecutionPayloadEnvelope) + if !ok { + return errors.New("failed to cast event data") + } + + return nil +} + +func (e *TraceGossipSubExecutionPayloadEnvelope) Filter(_ context.Context) bool { + return false +} + +func (e *TraceGossipSubExecutionPayloadEnvelope) AppendServerMeta(_ context.Context, meta *xatu.ServerMeta) *xatu.ServerMeta { + return meta +} diff --git a/pkg/server/service/event-ingester/event/libp2p/trace_gossipsub_payload_attestation_message.go b/pkg/server/service/event-ingester/event/libp2p/trace_gossipsub_payload_attestation_message.go new file mode 100644 index 000000000..d38cfb1e3 --- /dev/null +++ b/pkg/server/service/event-ingester/event/libp2p/trace_gossipsub_payload_attestation_message.go @@ -0,0 +1,46 @@ +package libp2p + +import ( + "context" + "errors" + + "github.com/ethpandaops/xatu/pkg/proto/xatu" + "github.com/sirupsen/logrus" +) + +const ( + TraceGossipSubPayloadAttestationMessageType = "LIBP2P_TRACE_GOSSIPSUB_PAYLOAD_ATTESTATION_MESSAGE" +) + +type TraceGossipSubPayloadAttestationMessage struct { + log logrus.FieldLogger + event *xatu.DecoratedEvent +} + +func NewTraceGossipSubPayloadAttestationMessage(log logrus.FieldLogger, event *xatu.DecoratedEvent) *TraceGossipSubPayloadAttestationMessage { + return &TraceGossipSubPayloadAttestationMessage{ + log: log.WithField("event", TraceGossipSubPayloadAttestationMessageType), + event: event, + } +} + +func (e *TraceGossipSubPayloadAttestationMessage) Type() string { + return TraceGossipSubPayloadAttestationMessageType +} + +func (e *TraceGossipSubPayloadAttestationMessage) Validate(_ context.Context) error { + _, ok := e.event.GetData().(*xatu.DecoratedEvent_Libp2PTraceGossipsubPayloadAttestationMessage) + if !ok { + return errors.New("failed to cast event data") + } + + return nil +} + +func (e *TraceGossipSubPayloadAttestationMessage) Filter(_ context.Context) bool { + return false +} + +func (e *TraceGossipSubPayloadAttestationMessage) AppendServerMeta(_ context.Context, meta *xatu.ServerMeta) *xatu.ServerMeta { + return meta +} diff --git a/pkg/server/service/event-ingester/event/libp2p/trace_gossipsub_proposer_preferences.go b/pkg/server/service/event-ingester/event/libp2p/trace_gossipsub_proposer_preferences.go new file mode 100644 index 000000000..2c8b0afe8 --- /dev/null +++ b/pkg/server/service/event-ingester/event/libp2p/trace_gossipsub_proposer_preferences.go @@ -0,0 +1,46 @@ +package libp2p + +import ( + "context" + "errors" + + "github.com/ethpandaops/xatu/pkg/proto/xatu" + "github.com/sirupsen/logrus" +) + +const ( + TraceGossipSubProposerPreferencesType = "LIBP2P_TRACE_GOSSIPSUB_PROPOSER_PREFERENCES" +) + +type TraceGossipSubProposerPreferences struct { + log logrus.FieldLogger + event *xatu.DecoratedEvent +} + +func NewTraceGossipSubProposerPreferences(log logrus.FieldLogger, event *xatu.DecoratedEvent) *TraceGossipSubProposerPreferences { + return &TraceGossipSubProposerPreferences{ + log: log.WithField("event", TraceGossipSubProposerPreferencesType), + event: event, + } +} + +func (e *TraceGossipSubProposerPreferences) Type() string { + return TraceGossipSubProposerPreferencesType +} + +func (e *TraceGossipSubProposerPreferences) Validate(_ context.Context) error { + _, ok := e.event.GetData().(*xatu.DecoratedEvent_Libp2PTraceGossipsubProposerPreferences) + if !ok { + return errors.New("failed to cast event data") + } + + return nil +} + +func (e *TraceGossipSubProposerPreferences) Filter(_ context.Context) bool { + return false +} + +func (e *TraceGossipSubProposerPreferences) AppendServerMeta(_ context.Context, meta *xatu.ServerMeta) *xatu.ServerMeta { + return meta +} From f537b30d5620364bfeb719be1d9fae45cca2db40 Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Thu, 26 Mar 2026 13:33:51 +1000 Subject: [PATCH 18/23] refactor(beacon_api_eth_v2_beacon_block.go, canonical_beacon_block.go): remove execution payload logic for Gloas blocks to simplify the code base and adapt to new event handling requirements --- .../beacon/beacon_api_eth_v2_beacon_block.go | 72 ++----------------- .../route/canonical/canonical_beacon_block.go | 71 ++---------------- 2 files changed, 8 insertions(+), 135 deletions(-) diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go b/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go index 9389d3197..c996da79d 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go @@ -269,15 +269,11 @@ func (b *beaconApiEthV2BeaconBlockBatch) appendPayloadFromEventBlockV2( body := gloasBlock.GetBody() b.appendEth1Data(body.GetEth1Data()) - // EIP-7732: Under ePBS the block body has a bid instead of an - // inline execution payload. The payload arrives via the envelope. - if body.GetSignedExecutionPayloadBid() != nil { - b.appendNoExecutionPayload() - - return nil - } + // Gloas blocks have no inline execution payload — it arrives + // via the ExecutionPayloadEnvelope event. + b.appendNoExecutionPayload() - return b.appendExecutionPayloadGloas(body.GetExecutionPayload()) + return nil } // Unknown block type: append zero values. @@ -521,66 +517,6 @@ func (b *beaconApiEthV2BeaconBlockBatch) appendExecutionPayloadElectra( return nil } -func (b *beaconApiEthV2BeaconBlockBatch) appendExecutionPayloadGloas( - payload *ethv1.ExecutionPayloadGloas, -) error { - if payload == nil { - b.appendNoExecutionPayload() - - return nil - } - - baseFeePerGas, err := route.ParseUInt128(payload.GetBaseFeePerGas()) - if err != nil { - b.ExecutionPayloadBaseFeePerGas.Append(proto.Nullable[proto.UInt128]{}) - } else { - b.ExecutionPayloadBaseFeePerGas.Append(proto.NewNullable[proto.UInt128](baseFeePerGas)) - } - - b.ExecutionPayloadBlockHash.Append([]byte(payload.GetBlockHash())) - b.ExecutionPayloadFeeRecipient.Append(payload.GetFeeRecipient()) - b.ExecutionPayloadStateRoot.Append([]byte(payload.GetStateRoot())) - b.ExecutionPayloadParentHash.Append([]byte(payload.GetParentHash())) - - if blockNumber := payload.GetBlockNumber(); blockNumber != nil { - b.ExecutionPayloadBlockNumber.Append(uint32(blockNumber.GetValue())) //nolint:gosec // block number fits uint32 - } else { - b.ExecutionPayloadBlockNumber.Append(0) - } - - if blobGasUsed := payload.GetBlobGasUsed(); blobGasUsed != nil { - b.ExecutionPayloadBlobGasUsed.Append(proto.NewNullable[uint64](blobGasUsed.GetValue())) - } else { - b.ExecutionPayloadBlobGasUsed.Append(proto.Nullable[uint64]{}) - } - - if excessBlobGas := payload.GetExcessBlobGas(); excessBlobGas != nil { - b.ExecutionPayloadExcessBlobGas.Append(proto.NewNullable[uint64](excessBlobGas.GetValue())) - } else { - b.ExecutionPayloadExcessBlobGas.Append(proto.Nullable[uint64]{}) - } - - if slotNumber := payload.GetSlotNumber(); slotNumber != nil { - b.ExecutionPayloadSlotNumber.Append(proto.NewNullable[uint64](slotNumber.GetValue())) - } else { - b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) - } - - if gasLimit := payload.GetGasLimit(); gasLimit != nil { - b.ExecutionPayloadGasLimit.Append(proto.NewNullable[uint64](gasLimit.GetValue())) - } else { - b.ExecutionPayloadGasLimit.Append(proto.Nullable[uint64]{}) - } - - if gasUsed := payload.GetGasUsed(); gasUsed != nil { - b.ExecutionPayloadGasUsed.Append(proto.NewNullable[uint64](gasUsed.GetValue())) - } else { - b.ExecutionPayloadGasUsed.Append(proto.Nullable[uint64]{}) - } - - return nil -} - func (b *beaconApiEthV2BeaconBlockBatch) appendAdditionalData(event *xatu.DecoratedEvent) { if event.GetMeta() == nil || event.GetMeta().GetClient() == nil { b.Epoch.Append(0) diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block.go b/pkg/consumoor/route/canonical/canonical_beacon_block.go index 9e0b358a9..472a7b7fd 100644 --- a/pkg/consumoor/route/canonical/canonical_beacon_block.go +++ b/pkg/consumoor/route/canonical/canonical_beacon_block.go @@ -260,15 +260,11 @@ func (b *canonicalBeaconBlockBatch) appendPayloadFromEventBlockV2(eventBlock *et body := gloasBlock.GetBody() b.appendEth1Data(body.GetEth1Data()) - // EIP-7732: Under ePBS the block body has a bid instead of an - // inline execution payload. The payload arrives via the envelope. - if body.GetSignedExecutionPayloadBid() != nil { - b.appendNullExecutionPayload() - - return nil - } + // Gloas blocks have no inline execution payload — it arrives + // via the ExecutionPayloadEnvelope event. + b.appendNullExecutionPayload() - return b.appendExecutionPayloadGloas(body.GetExecutionPayload()) + return nil } // Unknown block version - append zeros. @@ -509,65 +505,6 @@ func (b *canonicalBeaconBlockBatch) appendExecutionPayloadElectra(payload *ethv1 return nil } -//nolint:gosec // G115 -func (b *canonicalBeaconBlockBatch) appendExecutionPayloadGloas(payload *ethv1.ExecutionPayloadGloas) error { - if payload == nil { - b.appendNullExecutionPayload() - - return nil - } - - baseFeePerGas, err := route.ParseUInt128(payload.GetBaseFeePerGas()) - if err != nil { - b.ExecutionPayloadBaseFeePerGas.Append(proto.Nullable[proto.UInt128]{}) - } else { - b.ExecutionPayloadBaseFeePerGas.Append(proto.NewNullable[proto.UInt128](baseFeePerGas)) - } - - b.ExecutionPayloadBlockHash.Append(proto.NewNullable[[]byte]([]byte(payload.GetBlockHash()))) - b.ExecutionPayloadFeeRecipient.Append(proto.NewNullable[string](payload.GetFeeRecipient())) - b.ExecutionPayloadStateRoot.Append(proto.NewNullable[[]byte]([]byte(payload.GetStateRoot()))) - b.ExecutionPayloadParentHash.Append(proto.NewNullable[[]byte]([]byte(payload.GetParentHash()))) - - if blockNumber := payload.GetBlockNumber(); blockNumber != nil { - b.ExecutionPayloadBlockNumber.Append(proto.NewNullable[uint32](uint32(blockNumber.GetValue()))) - } else { - b.ExecutionPayloadBlockNumber.Append(proto.Nullable[uint32]{}) - } - - if blobGasUsed := payload.GetBlobGasUsed(); blobGasUsed != nil { - b.ExecutionPayloadBlobGasUsed.Append(proto.NewNullable[uint64](blobGasUsed.GetValue())) - } else { - b.ExecutionPayloadBlobGasUsed.Append(proto.Nullable[uint64]{}) - } - - if excessBlobGas := payload.GetExcessBlobGas(); excessBlobGas != nil { - b.ExecutionPayloadExcessBlobGas.Append(proto.NewNullable[uint64](excessBlobGas.GetValue())) - } else { - b.ExecutionPayloadExcessBlobGas.Append(proto.Nullable[uint64]{}) - } - - if slotNumber := payload.GetSlotNumber(); slotNumber != nil { - b.ExecutionPayloadSlotNumber.Append(proto.NewNullable[uint64](slotNumber.GetValue())) - } else { - b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) - } - - if gasLimit := payload.GetGasLimit(); gasLimit != nil { - b.ExecutionPayloadGasLimit.Append(proto.NewNullable[uint64](gasLimit.GetValue())) - } else { - b.ExecutionPayloadGasLimit.Append(proto.Nullable[uint64]{}) - } - - if gasUsed := payload.GetGasUsed(); gasUsed != nil { - b.ExecutionPayloadGasUsed.Append(proto.NewNullable[uint64](gasUsed.GetValue())) - } else { - b.ExecutionPayloadGasUsed.Append(proto.Nullable[uint64]{}) - } - - return nil -} - //nolint:gosec // G115 func (b *canonicalBeaconBlockBatch) appendAdditionalData(event *xatu.DecoratedEvent) { additional := event.GetMeta().GetClient().GetEthV2BeaconBlockV2() From 181885bf6c8b0ac8af457cd4bd41ab41c2901094 Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Thu, 26 Mar 2026 13:38:36 +1000 Subject: [PATCH 19/23] feat: ebps wiring wip --- .../beacon/eth/v2/block_access_list.go | 2 + .../beacon/eth/v2/execution_transaction.go | 2 + ...i_eth_v1_events_data_column_sidecar.gen.go | 20 +- ...api_eth_v1_events_execution_payload.gen.go | 264 ++++++++++++++++ ...con_api_eth_v1_events_execution_payload.go | 43 +++ ...eth_v1_events_execution_payload_bid.gen.go | 285 +++++++++++++++++ ...api_eth_v1_events_execution_payload_bid.go | 43 +++ ...th_v1_events_execution_payload_bid_test.go | 27 ++ ...pi_eth_v1_events_execution_payload_test.go | 27 ++ ...i_eth_v1_events_payload_attestation.gen.go | 262 ++++++++++++++++ ...n_api_eth_v1_events_payload_attestation.go | 43 +++ ..._eth_v1_events_payload_attestation_test.go | 27 ++ ..._eth_v1_events_proposer_preferences.gen.go | 258 ++++++++++++++++ ..._api_eth_v1_events_proposer_preferences.go | 43 +++ ...eth_v1_events_proposer_preferences_test.go | 27 ++ .../beacon_api_eth_v2_beacon_block.gen.go | 88 ++++-- .../canonical/canonical_beacon_block.gen.go | 47 ++- .../canonical_beacon_block_access_list.gen.go | 26 +- ..._beacon_block_execution_payload_bid.gen.go | 290 ++++++++++++++++++ ...ical_beacon_block_execution_payload_bid.go | 43 +++ ...beacon_block_execution_payload_bid_test.go | 27 ++ ...al_beacon_block_payload_attestation.gen.go | 270 ++++++++++++++++ ...onical_beacon_block_payload_attestation.go | 43 +++ ...l_beacon_block_payload_attestation_test.go | 27 ++ ...ibp2p_gossipsub_data_column_sidecar.gen.go | 20 +- ...p2p_gossipsub_execution_payload_bid.gen.go | 287 +++++++++++++++++ .../libp2p_gossipsub_execution_payload_bid.go | 43 +++ ...2p_gossipsub_execution_payload_bid_test.go | 27 ++ ...ossipsub_execution_payload_envelope.gen.go | 266 ++++++++++++++++ ...2p_gossipsub_execution_payload_envelope.go | 43 +++ ...ssipsub_execution_payload_envelope_test.go | 27 ++ ...ssipsub_payload_attestation_message.gen.go | 269 ++++++++++++++++ ...p_gossipsub_payload_attestation_message.go | 43 +++ ...sipsub_payload_attestation_message_test.go | 27 ++ ...bp2p_gossipsub_proposer_preferences.gen.go | 265 ++++++++++++++++ .../libp2p_gossipsub_proposer_preferences.go | 43 +++ ...p2p_gossipsub_proposer_preferences_test.go | 27 ++ pkg/proto/eth/block.go | 4 + pkg/sentry/beacon_blob.go | 2 + .../beacon/eth/v3/proposed_validator_block.go | 2 + 40 files changed, 3578 insertions(+), 51 deletions(-) create mode 100644 pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload.gen.go create mode 100644 pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload.go create mode 100644 pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid.gen.go create mode 100644 pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid.go create mode 100644 pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid_test.go create mode 100644 pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_test.go create mode 100644 pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation.gen.go create mode 100644 pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation.go create mode 100644 pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation_test.go create mode 100644 pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences.gen.go create mode 100644 pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences.go create mode 100644 pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences_test.go create mode 100644 pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid.gen.go create mode 100644 pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid.go create mode 100644 pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid_test.go create mode 100644 pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation.gen.go create mode 100644 pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation.go create mode 100644 pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation_test.go create mode 100644 pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid.gen.go create mode 100644 pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid.go create mode 100644 pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid_test.go create mode 100644 pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope.gen.go create mode 100644 pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope.go create mode 100644 pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope_test.go create mode 100644 pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message.gen.go create mode 100644 pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message.go create mode 100644 pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message_test.go create mode 100644 pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences.gen.go create mode 100644 pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences.go create mode 100644 pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences_test.go diff --git a/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go b/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go index a91b06286..bdd075491 100644 --- a/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go +++ b/pkg/cannon/deriver/beacon/eth/v2/block_access_list.go @@ -245,6 +245,8 @@ func (b *BlockAccessListDeriver) processSlot( return []*xatu.DecoratedEvent{}, nil } + // TODO(epbs): Under EIP-7732, ExecutionPayload and BAL data move to the + // ExecutionPayloadEnvelope. Source from envelope once go-eth2-client adds ePBS support. if block.Gloas == nil || block.Gloas.Message == nil || block.Gloas.Message.Body == nil || block.Gloas.Message.Body.ExecutionPayload == nil { diff --git a/pkg/cannon/deriver/beacon/eth/v2/execution_transaction.go b/pkg/cannon/deriver/beacon/eth/v2/execution_transaction.go index 67f5d206c..aa6c9e1dc 100644 --- a/pkg/cannon/deriver/beacon/eth/v2/execution_transaction.go +++ b/pkg/cannon/deriver/beacon/eth/v2/execution_transaction.go @@ -445,6 +445,8 @@ func GetGasPrice(block *spec.VersionedSignedBeaconBlock, transaction *types.Tran executionPayload := block.Fulu.Message.Body.ExecutionPayload baseFee.SetBytes(executionPayload.BaseFeePerGas.Bytes()) case spec.DataVersionGloas: + // TODO(epbs): Under EIP-7732, ExecutionPayload moves to the envelope. + // Source from ExecutionPayloadEnvelope once go-eth2-client adds ePBS support. executionPayload := block.Gloas.Message.Body.ExecutionPayload baseFee.SetBytes(executionPayload.BaseFeePerGas.Bytes()) default: diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_data_column_sidecar.gen.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_data_column_sidecar.gen.go index 66d0b46d6..c017a0311 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_data_column_sidecar.gen.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_data_column_sidecar.gen.go @@ -45,6 +45,8 @@ type beaconApiEthV1EventsDataColumnSidecarBatch struct { MetaConsensusVersionPatch proto.ColStr MetaConsensusImplementation proto.ColStr MetaLabels *proto.ColMap[string, string] + SidecarSlot *proto.ColNullable[uint32] + SidecarBeaconBlockRoot *proto.ColNullable[[]byte] rows int } @@ -58,6 +60,8 @@ func newbeaconApiEthV1EventsDataColumnSidecarBatch() *beaconApiEthV1EventsDataCo MetaClientGeoAutonomousSystemNumber: new(proto.ColUInt32).Nullable(), MetaClientGeoAutonomousSystemOrganization: new(proto.ColStr).Nullable(), MetaLabels: proto.NewMap[string, string](new(proto.ColStr), new(proto.ColStr)), + SidecarSlot: new(proto.ColUInt32).Nullable(), + SidecarBeaconBlockRoot: route.NewNullableFixedStr(66), } } @@ -154,6 +158,8 @@ func (b *beaconApiEthV1EventsDataColumnSidecarBatch) Input() proto.Input { {Name: "meta_consensus_version_patch", Data: &b.MetaConsensusVersionPatch}, {Name: "meta_consensus_implementation", Data: &b.MetaConsensusImplementation}, {Name: "meta_labels", Data: b.MetaLabels}, + {Name: "sidecar_slot", Data: b.SidecarSlot}, + {Name: "sidecar_beacon_block_root", Data: b.SidecarBeaconBlockRoot}, } } @@ -190,6 +196,8 @@ func (b *beaconApiEthV1EventsDataColumnSidecarBatch) Reset() { b.MetaConsensusVersionPatch.Reset() b.MetaConsensusImplementation.Reset() b.MetaLabels.Reset() + b.SidecarSlot.Reset() + b.SidecarBeaconBlockRoot.Reset() b.rows = 0 } @@ -198,7 +206,7 @@ func (b *beaconApiEthV1EventsDataColumnSidecarBatch) Snapshot() []map[string]any out := make([]map[string]any, n) for i := 0; i < n; i++ { - row := make(map[string]any, 32) + row := make(map[string]any, 34) row["updated_date_time"] = b.UpdatedDateTime.Row(i).Unix() row["event_date_time"] = b.EventDateTime.Row(i).UnixMilli() row["slot"] = b.Slot.Row(i) @@ -251,6 +259,16 @@ func (b *beaconApiEthV1EventsDataColumnSidecarBatch) Snapshot() []map[string]any row["meta_consensus_version_patch"] = b.MetaConsensusVersionPatch.Row(i) row["meta_consensus_implementation"] = b.MetaConsensusImplementation.Row(i) row["meta_labels"] = b.MetaLabels.Row(i) + if v := b.SidecarSlot.Row(i); v.Set { + row["sidecar_slot"] = v.Value + } else { + row["sidecar_slot"] = nil + } + if v := b.SidecarBeaconBlockRoot.Row(i); v.Set { + row["sidecar_beacon_block_root"] = string(v.Value) + } else { + row["sidecar_beacon_block_root"] = nil + } out[i] = row } diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload.gen.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload.gen.go new file mode 100644 index 000000000..3dfa6efc8 --- /dev/null +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload.gen.go @@ -0,0 +1,264 @@ +// Code generated by chgo-rowgen; DO NOT EDIT. + +package beacon + +import ( + "net" + + "github.com/ClickHouse/ch-go/proto" + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +const beaconApiEthV1EventsExecutionPayloadTableName route.TableName = "beacon_api_eth_v1_events_execution_payload" + +type beaconApiEthV1EventsExecutionPayloadBatch struct { + UpdatedDateTime proto.ColDateTime + EventDateTime proto.ColDateTime64 + Slot proto.ColUInt32 + SlotStartDateTime proto.ColDateTime + PropagationSlotStartDiff proto.ColUInt32 + Epoch proto.ColUInt32 + EpochStartDateTime proto.ColDateTime + BlockRoot route.SafeColFixedStr + BuilderIndex proto.ColUInt64 + BlockHash route.SafeColFixedStr + StateRoot route.SafeColFixedStr + MetaClientName proto.ColStr + MetaClientID proto.ColStr + MetaClientVersion proto.ColStr + MetaClientImplementation proto.ColStr + MetaClientOS proto.ColStr + MetaClientIP *proto.ColNullable[proto.IPv6] + MetaClientGeoCity proto.ColStr + MetaClientGeoCountry proto.ColStr + MetaClientGeoCountryCode proto.ColStr + MetaClientGeoContinentCode proto.ColStr + MetaClientGeoLongitude *proto.ColNullable[float64] + MetaClientGeoLatitude *proto.ColNullable[float64] + MetaClientGeoAutonomousSystemNumber *proto.ColNullable[uint32] + MetaClientGeoAutonomousSystemOrganization *proto.ColNullable[string] + MetaNetworkID proto.ColInt32 + MetaNetworkName proto.ColStr + MetaConsensusVersion proto.ColStr + MetaConsensusVersionMajor proto.ColStr + MetaConsensusVersionMinor proto.ColStr + MetaConsensusVersionPatch proto.ColStr + MetaConsensusImplementation proto.ColStr + MetaLabels *proto.ColMap[string, string] + rows int +} + +func newbeaconApiEthV1EventsExecutionPayloadBatch() *beaconApiEthV1EventsExecutionPayloadBatch { + return &beaconApiEthV1EventsExecutionPayloadBatch{ + EventDateTime: func() proto.ColDateTime64 { var c proto.ColDateTime64; c.WithPrecision(proto.Precision(3)); return c }(), + BlockRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + BlockHash: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + StateRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + MetaClientIP: new(proto.ColIPv6).Nullable(), + MetaClientGeoLongitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoLatitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoAutonomousSystemNumber: new(proto.ColUInt32).Nullable(), + MetaClientGeoAutonomousSystemOrganization: new(proto.ColStr).Nullable(), + MetaLabels: proto.NewMap[string, string](new(proto.ColStr), new(proto.ColStr)), + } +} + +func (b *beaconApiEthV1EventsExecutionPayloadBatch) Rows() int { + return b.rows +} + +func (b *beaconApiEthV1EventsExecutionPayloadBatch) appendMetadata(event *xatu.DecoratedEvent) { + if event == nil || event.GetMeta() == nil { + b.MetaClientName.Append("") + b.MetaClientID.Append("") + b.MetaClientVersion.Append("") + b.MetaClientImplementation.Append("") + b.MetaClientOS.Append("") + b.MetaClientIP.Append(proto.Nullable[proto.IPv6]{}) + b.MetaClientGeoCity.Append("") + b.MetaClientGeoCountry.Append("") + b.MetaClientGeoCountryCode.Append("") + b.MetaClientGeoContinentCode.Append("") + b.MetaClientGeoLongitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoLatitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.Nullable[uint32]{}) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.Nullable[string]{}) + b.MetaNetworkID.Append(0) + b.MetaNetworkName.Append("") + b.MetaConsensusVersion.Append("") + b.MetaConsensusVersionMajor.Append("") + b.MetaConsensusVersionMinor.Append("") + b.MetaConsensusVersionPatch.Append("") + b.MetaConsensusImplementation.Append("") + b.MetaLabels.Append(nil) + return + } + + b.MetaClientName.Append(event.GetMeta().GetClient().GetName()) + b.MetaClientID.Append(event.GetMeta().GetClient().GetId()) + b.MetaClientVersion.Append(event.GetMeta().GetClient().GetVersion()) + b.MetaClientImplementation.Append(event.GetMeta().GetClient().GetImplementation()) + b.MetaClientOS.Append(event.GetMeta().GetClient().GetOs()) + b.MetaClientIP.Append(proto.NewNullable[proto.IPv6](route.NormalizeIPToIPv6(event.GetMeta().GetServer().GetClient().GetIP()))) + b.MetaClientGeoCity.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCity()) + b.MetaClientGeoCountry.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountry()) + b.MetaClientGeoCountryCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountryCode()) + b.MetaClientGeoContinentCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetContinentCode()) + b.MetaClientGeoLongitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLongitude())) + b.MetaClientGeoLatitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLatitude())) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.NewNullable[uint32](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemNumber())) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.NewNullable[string](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemOrganization())) + b.MetaNetworkID.Append(int32(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetId())) + b.MetaNetworkName.Append(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetName()) + b.MetaConsensusVersion.Append(route.NormalizeConsensusVersion(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionMajor.Append(route.ConsensusVersionMajor(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionMinor.Append(route.ConsensusVersionMinor(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionPatch.Append(route.ConsensusVersionPatch(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusImplementation.Append(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetImplementation()) + if labels := event.GetMeta().GetClient().GetLabels(); labels != nil { + b.MetaLabels.Append(labels) + } else { + b.MetaLabels.Append(map[string]string{}) + } +} + +func (b *beaconApiEthV1EventsExecutionPayloadBatch) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &b.UpdatedDateTime}, + {Name: "event_date_time", Data: &b.EventDateTime}, + {Name: "slot", Data: &b.Slot}, + {Name: "slot_start_date_time", Data: &b.SlotStartDateTime}, + {Name: "propagation_slot_start_diff", Data: &b.PropagationSlotStartDiff}, + {Name: "epoch", Data: &b.Epoch}, + {Name: "epoch_start_date_time", Data: &b.EpochStartDateTime}, + {Name: "block_root", Data: &b.BlockRoot}, + {Name: "builder_index", Data: &b.BuilderIndex}, + {Name: "block_hash", Data: &b.BlockHash}, + {Name: "state_root", Data: &b.StateRoot}, + {Name: "meta_client_name", Data: &b.MetaClientName}, + {Name: "meta_client_id", Data: &b.MetaClientID}, + {Name: "meta_client_version", Data: &b.MetaClientVersion}, + {Name: "meta_client_implementation", Data: &b.MetaClientImplementation}, + {Name: "meta_client_os", Data: &b.MetaClientOS}, + {Name: "meta_client_ip", Data: b.MetaClientIP}, + {Name: "meta_client_geo_city", Data: &b.MetaClientGeoCity}, + {Name: "meta_client_geo_country", Data: &b.MetaClientGeoCountry}, + {Name: "meta_client_geo_country_code", Data: &b.MetaClientGeoCountryCode}, + {Name: "meta_client_geo_continent_code", Data: &b.MetaClientGeoContinentCode}, + {Name: "meta_client_geo_longitude", Data: b.MetaClientGeoLongitude}, + {Name: "meta_client_geo_latitude", Data: b.MetaClientGeoLatitude}, + {Name: "meta_client_geo_autonomous_system_number", Data: b.MetaClientGeoAutonomousSystemNumber}, + {Name: "meta_client_geo_autonomous_system_organization", Data: b.MetaClientGeoAutonomousSystemOrganization}, + {Name: "meta_network_id", Data: &b.MetaNetworkID}, + {Name: "meta_network_name", Data: &b.MetaNetworkName}, + {Name: "meta_consensus_version", Data: &b.MetaConsensusVersion}, + {Name: "meta_consensus_version_major", Data: &b.MetaConsensusVersionMajor}, + {Name: "meta_consensus_version_minor", Data: &b.MetaConsensusVersionMinor}, + {Name: "meta_consensus_version_patch", Data: &b.MetaConsensusVersionPatch}, + {Name: "meta_consensus_implementation", Data: &b.MetaConsensusImplementation}, + {Name: "meta_labels", Data: b.MetaLabels}, + } +} + +func (b *beaconApiEthV1EventsExecutionPayloadBatch) Reset() { + b.UpdatedDateTime.Reset() + b.EventDateTime.Reset() + b.Slot.Reset() + b.SlotStartDateTime.Reset() + b.PropagationSlotStartDiff.Reset() + b.Epoch.Reset() + b.EpochStartDateTime.Reset() + b.BlockRoot.Reset() + b.BuilderIndex.Reset() + b.BlockHash.Reset() + b.StateRoot.Reset() + b.MetaClientName.Reset() + b.MetaClientID.Reset() + b.MetaClientVersion.Reset() + b.MetaClientImplementation.Reset() + b.MetaClientOS.Reset() + b.MetaClientIP.Reset() + b.MetaClientGeoCity.Reset() + b.MetaClientGeoCountry.Reset() + b.MetaClientGeoCountryCode.Reset() + b.MetaClientGeoContinentCode.Reset() + b.MetaClientGeoLongitude.Reset() + b.MetaClientGeoLatitude.Reset() + b.MetaClientGeoAutonomousSystemNumber.Reset() + b.MetaClientGeoAutonomousSystemOrganization.Reset() + b.MetaNetworkID.Reset() + b.MetaNetworkName.Reset() + b.MetaConsensusVersion.Reset() + b.MetaConsensusVersionMajor.Reset() + b.MetaConsensusVersionMinor.Reset() + b.MetaConsensusVersionPatch.Reset() + b.MetaConsensusImplementation.Reset() + b.MetaLabels.Reset() + b.rows = 0 +} + +func (b *beaconApiEthV1EventsExecutionPayloadBatch) Snapshot() []map[string]any { + n := b.rows + out := make([]map[string]any, n) + + for i := 0; i < n; i++ { + row := make(map[string]any, 33) + row["updated_date_time"] = b.UpdatedDateTime.Row(i).Unix() + row["event_date_time"] = b.EventDateTime.Row(i).UnixMilli() + row["slot"] = b.Slot.Row(i) + row["slot_start_date_time"] = b.SlotStartDateTime.Row(i).Unix() + row["propagation_slot_start_diff"] = b.PropagationSlotStartDiff.Row(i) + row["epoch"] = b.Epoch.Row(i) + row["epoch_start_date_time"] = b.EpochStartDateTime.Row(i).Unix() + row["block_root"] = string(b.BlockRoot.Row(i)) + row["builder_index"] = b.BuilderIndex.Row(i) + row["block_hash"] = string(b.BlockHash.Row(i)) + row["state_root"] = string(b.StateRoot.Row(i)) + row["meta_client_name"] = b.MetaClientName.Row(i) + row["meta_client_id"] = b.MetaClientID.Row(i) + row["meta_client_version"] = b.MetaClientVersion.Row(i) + row["meta_client_implementation"] = b.MetaClientImplementation.Row(i) + row["meta_client_os"] = b.MetaClientOS.Row(i) + if v := b.MetaClientIP.Row(i); v.Set { + row["meta_client_ip"] = net.IP(v.Value[:]).String() + } else { + row["meta_client_ip"] = nil + } + row["meta_client_geo_city"] = b.MetaClientGeoCity.Row(i) + row["meta_client_geo_country"] = b.MetaClientGeoCountry.Row(i) + row["meta_client_geo_country_code"] = b.MetaClientGeoCountryCode.Row(i) + row["meta_client_geo_continent_code"] = b.MetaClientGeoContinentCode.Row(i) + if v := b.MetaClientGeoLongitude.Row(i); v.Set { + row["meta_client_geo_longitude"] = v.Value + } else { + row["meta_client_geo_longitude"] = nil + } + if v := b.MetaClientGeoLatitude.Row(i); v.Set { + row["meta_client_geo_latitude"] = v.Value + } else { + row["meta_client_geo_latitude"] = nil + } + if v := b.MetaClientGeoAutonomousSystemNumber.Row(i); v.Set { + row["meta_client_geo_autonomous_system_number"] = v.Value + } else { + row["meta_client_geo_autonomous_system_number"] = nil + } + if v := b.MetaClientGeoAutonomousSystemOrganization.Row(i); v.Set { + row["meta_client_geo_autonomous_system_organization"] = v.Value + } else { + row["meta_client_geo_autonomous_system_organization"] = nil + } + row["meta_network_id"] = b.MetaNetworkID.Row(i) + row["meta_network_name"] = b.MetaNetworkName.Row(i) + row["meta_consensus_version"] = b.MetaConsensusVersion.Row(i) + row["meta_consensus_version_major"] = b.MetaConsensusVersionMajor.Row(i) + row["meta_consensus_version_minor"] = b.MetaConsensusVersionMinor.Row(i) + row["meta_consensus_version_patch"] = b.MetaConsensusVersionPatch.Row(i) + row["meta_consensus_implementation"] = b.MetaConsensusImplementation.Row(i) + row["meta_labels"] = b.MetaLabels.Row(i) + out[i] = row + } + + return out +} diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload.go new file mode 100644 index 000000000..ab77a08b6 --- /dev/null +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload.go @@ -0,0 +1,43 @@ +package beacon + +import ( + "fmt" + + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +// TODO: Add the xatu.Event_* name(s) that route events to the beacon_api_eth_v1_events_execution_payload table. +var beaconApiEthV1EventsExecutionPayloadEventNames = []xatu.Event_Name{} + +func init() { + route, err := route.NewStaticRoute( + beaconApiEthV1EventsExecutionPayloadTableName, + beaconApiEthV1EventsExecutionPayloadEventNames, + func() route.ColumnarBatch { return newbeaconApiEthV1EventsExecutionPayloadBatch() }, + ) + if err != nil { + route.RecordError(err) + + return + } + + if err := route.Register(route); err != nil { + route.RecordError(err) + } +} + +func (b *beaconApiEthV1EventsExecutionPayloadBatch) FlattenTo( + event *xatu.DecoratedEvent, +) error { + // TODO: Implement this method to flatten the event into columnar batch columns. + // The generated .gen.go file contains the available column fields for this table. + // + // Typical structure: + // b.appendRuntime(event) + // b.appendMetadata(event) + // b.appendPayload(event) + // b.rows++ + // return nil + return fmt.Errorf("beaconApiEthV1EventsExecutionPayload: FlattenTo not implemented") +} diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid.gen.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid.gen.go new file mode 100644 index 000000000..56d58708d --- /dev/null +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid.gen.go @@ -0,0 +1,285 @@ +// Code generated by chgo-rowgen; DO NOT EDIT. + +package beacon + +import ( + "net" + + "github.com/ClickHouse/ch-go/proto" + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +const beaconApiEthV1EventsExecutionPayloadBidTableName route.TableName = "beacon_api_eth_v1_events_execution_payload_bid" + +type beaconApiEthV1EventsExecutionPayloadBidBatch struct { + UpdatedDateTime proto.ColDateTime + EventDateTime proto.ColDateTime64 + Slot proto.ColUInt32 + SlotStartDateTime proto.ColDateTime + PropagationSlotStartDiff proto.ColUInt32 + Epoch proto.ColUInt32 + EpochStartDateTime proto.ColDateTime + BuilderIndex proto.ColUInt64 + BlockHash route.SafeColFixedStr + ParentBlockHash route.SafeColFixedStr + ParentBlockRoot route.SafeColFixedStr + Value proto.ColUInt64 + ExecutionPayment proto.ColUInt64 + FeeRecipient route.SafeColFixedStr + GasLimit proto.ColUInt64 + BlobKzgCommitmentCount proto.ColUInt32 + MetaClientName proto.ColStr + MetaClientID proto.ColStr + MetaClientVersion proto.ColStr + MetaClientImplementation proto.ColStr + MetaClientOS proto.ColStr + MetaClientIP *proto.ColNullable[proto.IPv6] + MetaClientGeoCity proto.ColStr + MetaClientGeoCountry proto.ColStr + MetaClientGeoCountryCode proto.ColStr + MetaClientGeoContinentCode proto.ColStr + MetaClientGeoLongitude *proto.ColNullable[float64] + MetaClientGeoLatitude *proto.ColNullable[float64] + MetaClientGeoAutonomousSystemNumber *proto.ColNullable[uint32] + MetaClientGeoAutonomousSystemOrganization *proto.ColNullable[string] + MetaNetworkID proto.ColInt32 + MetaNetworkName proto.ColStr + MetaConsensusVersion proto.ColStr + MetaConsensusVersionMajor proto.ColStr + MetaConsensusVersionMinor proto.ColStr + MetaConsensusVersionPatch proto.ColStr + MetaConsensusImplementation proto.ColStr + MetaLabels *proto.ColMap[string, string] + rows int +} + +func newbeaconApiEthV1EventsExecutionPayloadBidBatch() *beaconApiEthV1EventsExecutionPayloadBidBatch { + return &beaconApiEthV1EventsExecutionPayloadBidBatch{ + EventDateTime: func() proto.ColDateTime64 { var c proto.ColDateTime64; c.WithPrecision(proto.Precision(3)); return c }(), + BlockHash: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + ParentBlockHash: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + ParentBlockRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + FeeRecipient: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(42); return c }(), + MetaClientIP: new(proto.ColIPv6).Nullable(), + MetaClientGeoLongitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoLatitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoAutonomousSystemNumber: new(proto.ColUInt32).Nullable(), + MetaClientGeoAutonomousSystemOrganization: new(proto.ColStr).Nullable(), + MetaLabels: proto.NewMap[string, string](new(proto.ColStr), new(proto.ColStr)), + } +} + +func (b *beaconApiEthV1EventsExecutionPayloadBidBatch) Rows() int { + return b.rows +} + +func (b *beaconApiEthV1EventsExecutionPayloadBidBatch) appendMetadata(event *xatu.DecoratedEvent) { + if event == nil || event.GetMeta() == nil { + b.MetaClientName.Append("") + b.MetaClientID.Append("") + b.MetaClientVersion.Append("") + b.MetaClientImplementation.Append("") + b.MetaClientOS.Append("") + b.MetaClientIP.Append(proto.Nullable[proto.IPv6]{}) + b.MetaClientGeoCity.Append("") + b.MetaClientGeoCountry.Append("") + b.MetaClientGeoCountryCode.Append("") + b.MetaClientGeoContinentCode.Append("") + b.MetaClientGeoLongitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoLatitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.Nullable[uint32]{}) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.Nullable[string]{}) + b.MetaNetworkID.Append(0) + b.MetaNetworkName.Append("") + b.MetaConsensusVersion.Append("") + b.MetaConsensusVersionMajor.Append("") + b.MetaConsensusVersionMinor.Append("") + b.MetaConsensusVersionPatch.Append("") + b.MetaConsensusImplementation.Append("") + b.MetaLabels.Append(nil) + return + } + + b.MetaClientName.Append(event.GetMeta().GetClient().GetName()) + b.MetaClientID.Append(event.GetMeta().GetClient().GetId()) + b.MetaClientVersion.Append(event.GetMeta().GetClient().GetVersion()) + b.MetaClientImplementation.Append(event.GetMeta().GetClient().GetImplementation()) + b.MetaClientOS.Append(event.GetMeta().GetClient().GetOs()) + b.MetaClientIP.Append(proto.NewNullable[proto.IPv6](route.NormalizeIPToIPv6(event.GetMeta().GetServer().GetClient().GetIP()))) + b.MetaClientGeoCity.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCity()) + b.MetaClientGeoCountry.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountry()) + b.MetaClientGeoCountryCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountryCode()) + b.MetaClientGeoContinentCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetContinentCode()) + b.MetaClientGeoLongitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLongitude())) + b.MetaClientGeoLatitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLatitude())) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.NewNullable[uint32](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemNumber())) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.NewNullable[string](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemOrganization())) + b.MetaNetworkID.Append(int32(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetId())) + b.MetaNetworkName.Append(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetName()) + b.MetaConsensusVersion.Append(route.NormalizeConsensusVersion(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionMajor.Append(route.ConsensusVersionMajor(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionMinor.Append(route.ConsensusVersionMinor(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionPatch.Append(route.ConsensusVersionPatch(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusImplementation.Append(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetImplementation()) + if labels := event.GetMeta().GetClient().GetLabels(); labels != nil { + b.MetaLabels.Append(labels) + } else { + b.MetaLabels.Append(map[string]string{}) + } +} + +func (b *beaconApiEthV1EventsExecutionPayloadBidBatch) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &b.UpdatedDateTime}, + {Name: "event_date_time", Data: &b.EventDateTime}, + {Name: "slot", Data: &b.Slot}, + {Name: "slot_start_date_time", Data: &b.SlotStartDateTime}, + {Name: "propagation_slot_start_diff", Data: &b.PropagationSlotStartDiff}, + {Name: "epoch", Data: &b.Epoch}, + {Name: "epoch_start_date_time", Data: &b.EpochStartDateTime}, + {Name: "builder_index", Data: &b.BuilderIndex}, + {Name: "block_hash", Data: &b.BlockHash}, + {Name: "parent_block_hash", Data: &b.ParentBlockHash}, + {Name: "parent_block_root", Data: &b.ParentBlockRoot}, + {Name: "value", Data: &b.Value}, + {Name: "execution_payment", Data: &b.ExecutionPayment}, + {Name: "fee_recipient", Data: &b.FeeRecipient}, + {Name: "gas_limit", Data: &b.GasLimit}, + {Name: "blob_kzg_commitment_count", Data: &b.BlobKzgCommitmentCount}, + {Name: "meta_client_name", Data: &b.MetaClientName}, + {Name: "meta_client_id", Data: &b.MetaClientID}, + {Name: "meta_client_version", Data: &b.MetaClientVersion}, + {Name: "meta_client_implementation", Data: &b.MetaClientImplementation}, + {Name: "meta_client_os", Data: &b.MetaClientOS}, + {Name: "meta_client_ip", Data: b.MetaClientIP}, + {Name: "meta_client_geo_city", Data: &b.MetaClientGeoCity}, + {Name: "meta_client_geo_country", Data: &b.MetaClientGeoCountry}, + {Name: "meta_client_geo_country_code", Data: &b.MetaClientGeoCountryCode}, + {Name: "meta_client_geo_continent_code", Data: &b.MetaClientGeoContinentCode}, + {Name: "meta_client_geo_longitude", Data: b.MetaClientGeoLongitude}, + {Name: "meta_client_geo_latitude", Data: b.MetaClientGeoLatitude}, + {Name: "meta_client_geo_autonomous_system_number", Data: b.MetaClientGeoAutonomousSystemNumber}, + {Name: "meta_client_geo_autonomous_system_organization", Data: b.MetaClientGeoAutonomousSystemOrganization}, + {Name: "meta_network_id", Data: &b.MetaNetworkID}, + {Name: "meta_network_name", Data: &b.MetaNetworkName}, + {Name: "meta_consensus_version", Data: &b.MetaConsensusVersion}, + {Name: "meta_consensus_version_major", Data: &b.MetaConsensusVersionMajor}, + {Name: "meta_consensus_version_minor", Data: &b.MetaConsensusVersionMinor}, + {Name: "meta_consensus_version_patch", Data: &b.MetaConsensusVersionPatch}, + {Name: "meta_consensus_implementation", Data: &b.MetaConsensusImplementation}, + {Name: "meta_labels", Data: b.MetaLabels}, + } +} + +func (b *beaconApiEthV1EventsExecutionPayloadBidBatch) Reset() { + b.UpdatedDateTime.Reset() + b.EventDateTime.Reset() + b.Slot.Reset() + b.SlotStartDateTime.Reset() + b.PropagationSlotStartDiff.Reset() + b.Epoch.Reset() + b.EpochStartDateTime.Reset() + b.BuilderIndex.Reset() + b.BlockHash.Reset() + b.ParentBlockHash.Reset() + b.ParentBlockRoot.Reset() + b.Value.Reset() + b.ExecutionPayment.Reset() + b.FeeRecipient.Reset() + b.GasLimit.Reset() + b.BlobKzgCommitmentCount.Reset() + b.MetaClientName.Reset() + b.MetaClientID.Reset() + b.MetaClientVersion.Reset() + b.MetaClientImplementation.Reset() + b.MetaClientOS.Reset() + b.MetaClientIP.Reset() + b.MetaClientGeoCity.Reset() + b.MetaClientGeoCountry.Reset() + b.MetaClientGeoCountryCode.Reset() + b.MetaClientGeoContinentCode.Reset() + b.MetaClientGeoLongitude.Reset() + b.MetaClientGeoLatitude.Reset() + b.MetaClientGeoAutonomousSystemNumber.Reset() + b.MetaClientGeoAutonomousSystemOrganization.Reset() + b.MetaNetworkID.Reset() + b.MetaNetworkName.Reset() + b.MetaConsensusVersion.Reset() + b.MetaConsensusVersionMajor.Reset() + b.MetaConsensusVersionMinor.Reset() + b.MetaConsensusVersionPatch.Reset() + b.MetaConsensusImplementation.Reset() + b.MetaLabels.Reset() + b.rows = 0 +} + +func (b *beaconApiEthV1EventsExecutionPayloadBidBatch) Snapshot() []map[string]any { + n := b.rows + out := make([]map[string]any, n) + + for i := 0; i < n; i++ { + row := make(map[string]any, 38) + row["updated_date_time"] = b.UpdatedDateTime.Row(i).Unix() + row["event_date_time"] = b.EventDateTime.Row(i).UnixMilli() + row["slot"] = b.Slot.Row(i) + row["slot_start_date_time"] = b.SlotStartDateTime.Row(i).Unix() + row["propagation_slot_start_diff"] = b.PropagationSlotStartDiff.Row(i) + row["epoch"] = b.Epoch.Row(i) + row["epoch_start_date_time"] = b.EpochStartDateTime.Row(i).Unix() + row["builder_index"] = b.BuilderIndex.Row(i) + row["block_hash"] = string(b.BlockHash.Row(i)) + row["parent_block_hash"] = string(b.ParentBlockHash.Row(i)) + row["parent_block_root"] = string(b.ParentBlockRoot.Row(i)) + row["value"] = b.Value.Row(i) + row["execution_payment"] = b.ExecutionPayment.Row(i) + row["fee_recipient"] = string(b.FeeRecipient.Row(i)) + row["gas_limit"] = b.GasLimit.Row(i) + row["blob_kzg_commitment_count"] = b.BlobKzgCommitmentCount.Row(i) + row["meta_client_name"] = b.MetaClientName.Row(i) + row["meta_client_id"] = b.MetaClientID.Row(i) + row["meta_client_version"] = b.MetaClientVersion.Row(i) + row["meta_client_implementation"] = b.MetaClientImplementation.Row(i) + row["meta_client_os"] = b.MetaClientOS.Row(i) + if v := b.MetaClientIP.Row(i); v.Set { + row["meta_client_ip"] = net.IP(v.Value[:]).String() + } else { + row["meta_client_ip"] = nil + } + row["meta_client_geo_city"] = b.MetaClientGeoCity.Row(i) + row["meta_client_geo_country"] = b.MetaClientGeoCountry.Row(i) + row["meta_client_geo_country_code"] = b.MetaClientGeoCountryCode.Row(i) + row["meta_client_geo_continent_code"] = b.MetaClientGeoContinentCode.Row(i) + if v := b.MetaClientGeoLongitude.Row(i); v.Set { + row["meta_client_geo_longitude"] = v.Value + } else { + row["meta_client_geo_longitude"] = nil + } + if v := b.MetaClientGeoLatitude.Row(i); v.Set { + row["meta_client_geo_latitude"] = v.Value + } else { + row["meta_client_geo_latitude"] = nil + } + if v := b.MetaClientGeoAutonomousSystemNumber.Row(i); v.Set { + row["meta_client_geo_autonomous_system_number"] = v.Value + } else { + row["meta_client_geo_autonomous_system_number"] = nil + } + if v := b.MetaClientGeoAutonomousSystemOrganization.Row(i); v.Set { + row["meta_client_geo_autonomous_system_organization"] = v.Value + } else { + row["meta_client_geo_autonomous_system_organization"] = nil + } + row["meta_network_id"] = b.MetaNetworkID.Row(i) + row["meta_network_name"] = b.MetaNetworkName.Row(i) + row["meta_consensus_version"] = b.MetaConsensusVersion.Row(i) + row["meta_consensus_version_major"] = b.MetaConsensusVersionMajor.Row(i) + row["meta_consensus_version_minor"] = b.MetaConsensusVersionMinor.Row(i) + row["meta_consensus_version_patch"] = b.MetaConsensusVersionPatch.Row(i) + row["meta_consensus_implementation"] = b.MetaConsensusImplementation.Row(i) + row["meta_labels"] = b.MetaLabels.Row(i) + out[i] = row + } + + return out +} diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid.go new file mode 100644 index 000000000..eb74f95c5 --- /dev/null +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid.go @@ -0,0 +1,43 @@ +package beacon + +import ( + "fmt" + + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +// TODO: Add the xatu.Event_* name(s) that route events to the beacon_api_eth_v1_events_execution_payload_bid table. +var beaconApiEthV1EventsExecutionPayloadBidEventNames = []xatu.Event_Name{} + +func init() { + route, err := route.NewStaticRoute( + beaconApiEthV1EventsExecutionPayloadBidTableName, + beaconApiEthV1EventsExecutionPayloadBidEventNames, + func() route.ColumnarBatch { return newbeaconApiEthV1EventsExecutionPayloadBidBatch() }, + ) + if err != nil { + route.RecordError(err) + + return + } + + if err := route.Register(route); err != nil { + route.RecordError(err) + } +} + +func (b *beaconApiEthV1EventsExecutionPayloadBidBatch) FlattenTo( + event *xatu.DecoratedEvent, +) error { + // TODO: Implement this method to flatten the event into columnar batch columns. + // The generated .gen.go file contains the available column fields for this table. + // + // Typical structure: + // b.appendRuntime(event) + // b.appendMetadata(event) + // b.appendPayload(event) + // b.rows++ + // return nil + return fmt.Errorf("beaconApiEthV1EventsExecutionPayloadBid: FlattenTo not implemented") +} diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid_test.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid_test.go new file mode 100644 index 000000000..9f2696f87 --- /dev/null +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid_test.go @@ -0,0 +1,27 @@ +package beacon + +import ( + "testing" + + "github.com/ethpandaops/xatu/pkg/consumoor/route/testfixture" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +func TestSnapshot_beacon_api_eth_v1_events_execution_payload_bid(t *testing.T) { + if len(beaconApiEthV1EventsExecutionPayloadBidEventNames) == 0 { + t.Skip("no event names registered for beacon_api_eth_v1_events_execution_payload_bid") + } + + testfixture.AssertSnapshot(t, newbeaconApiEthV1EventsExecutionPayloadBidBatch(), &xatu.DecoratedEvent{ + Event: &xatu.Event{ + Name: beaconApiEthV1EventsExecutionPayloadBidEventNames[0], + DateTime: testfixture.TS(), + Id: "snapshot-1", + }, + Meta: testfixture.BaseMeta(), + // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + }, 1, map[string]any{ + "meta_client_name": "test-client", + // TODO: Add payload-specific column assertions. + }) +} diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_test.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_test.go new file mode 100644 index 000000000..d14f2bbd9 --- /dev/null +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_test.go @@ -0,0 +1,27 @@ +package beacon + +import ( + "testing" + + "github.com/ethpandaops/xatu/pkg/consumoor/route/testfixture" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +func TestSnapshot_beacon_api_eth_v1_events_execution_payload(t *testing.T) { + if len(beaconApiEthV1EventsExecutionPayloadEventNames) == 0 { + t.Skip("no event names registered for beacon_api_eth_v1_events_execution_payload") + } + + testfixture.AssertSnapshot(t, newbeaconApiEthV1EventsExecutionPayloadBatch(), &xatu.DecoratedEvent{ + Event: &xatu.Event{ + Name: beaconApiEthV1EventsExecutionPayloadEventNames[0], + DateTime: testfixture.TS(), + Id: "snapshot-1", + }, + Meta: testfixture.BaseMeta(), + // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + }, 1, map[string]any{ + "meta_client_name": "test-client", + // TODO: Add payload-specific column assertions. + }) +} diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation.gen.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation.gen.go new file mode 100644 index 000000000..0bec4644f --- /dev/null +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation.gen.go @@ -0,0 +1,262 @@ +// Code generated by chgo-rowgen; DO NOT EDIT. + +package beacon + +import ( + "net" + + "github.com/ClickHouse/ch-go/proto" + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +const beaconApiEthV1EventsPayloadAttestationTableName route.TableName = "beacon_api_eth_v1_events_payload_attestation" + +type beaconApiEthV1EventsPayloadAttestationBatch struct { + UpdatedDateTime proto.ColDateTime + EventDateTime proto.ColDateTime64 + Slot proto.ColUInt32 + SlotStartDateTime proto.ColDateTime + PropagationSlotStartDiff proto.ColUInt32 + Epoch proto.ColUInt32 + EpochStartDateTime proto.ColDateTime + ValidatorIndex proto.ColUInt32 + BeaconBlockRoot route.SafeColFixedStr + PayloadPresent proto.ColBool + BlobDataAvailable proto.ColBool + MetaClientName proto.ColStr + MetaClientID proto.ColStr + MetaClientVersion proto.ColStr + MetaClientImplementation proto.ColStr + MetaClientOS proto.ColStr + MetaClientIP *proto.ColNullable[proto.IPv6] + MetaClientGeoCity proto.ColStr + MetaClientGeoCountry proto.ColStr + MetaClientGeoCountryCode proto.ColStr + MetaClientGeoContinentCode proto.ColStr + MetaClientGeoLongitude *proto.ColNullable[float64] + MetaClientGeoLatitude *proto.ColNullable[float64] + MetaClientGeoAutonomousSystemNumber *proto.ColNullable[uint32] + MetaClientGeoAutonomousSystemOrganization *proto.ColNullable[string] + MetaNetworkID proto.ColInt32 + MetaNetworkName proto.ColStr + MetaConsensusVersion proto.ColStr + MetaConsensusVersionMajor proto.ColStr + MetaConsensusVersionMinor proto.ColStr + MetaConsensusVersionPatch proto.ColStr + MetaConsensusImplementation proto.ColStr + MetaLabels *proto.ColMap[string, string] + rows int +} + +func newbeaconApiEthV1EventsPayloadAttestationBatch() *beaconApiEthV1EventsPayloadAttestationBatch { + return &beaconApiEthV1EventsPayloadAttestationBatch{ + EventDateTime: func() proto.ColDateTime64 { var c proto.ColDateTime64; c.WithPrecision(proto.Precision(3)); return c }(), + BeaconBlockRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + MetaClientIP: new(proto.ColIPv6).Nullable(), + MetaClientGeoLongitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoLatitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoAutonomousSystemNumber: new(proto.ColUInt32).Nullable(), + MetaClientGeoAutonomousSystemOrganization: new(proto.ColStr).Nullable(), + MetaLabels: proto.NewMap[string, string](new(proto.ColStr), new(proto.ColStr)), + } +} + +func (b *beaconApiEthV1EventsPayloadAttestationBatch) Rows() int { + return b.rows +} + +func (b *beaconApiEthV1EventsPayloadAttestationBatch) appendMetadata(event *xatu.DecoratedEvent) { + if event == nil || event.GetMeta() == nil { + b.MetaClientName.Append("") + b.MetaClientID.Append("") + b.MetaClientVersion.Append("") + b.MetaClientImplementation.Append("") + b.MetaClientOS.Append("") + b.MetaClientIP.Append(proto.Nullable[proto.IPv6]{}) + b.MetaClientGeoCity.Append("") + b.MetaClientGeoCountry.Append("") + b.MetaClientGeoCountryCode.Append("") + b.MetaClientGeoContinentCode.Append("") + b.MetaClientGeoLongitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoLatitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.Nullable[uint32]{}) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.Nullable[string]{}) + b.MetaNetworkID.Append(0) + b.MetaNetworkName.Append("") + b.MetaConsensusVersion.Append("") + b.MetaConsensusVersionMajor.Append("") + b.MetaConsensusVersionMinor.Append("") + b.MetaConsensusVersionPatch.Append("") + b.MetaConsensusImplementation.Append("") + b.MetaLabels.Append(nil) + return + } + + b.MetaClientName.Append(event.GetMeta().GetClient().GetName()) + b.MetaClientID.Append(event.GetMeta().GetClient().GetId()) + b.MetaClientVersion.Append(event.GetMeta().GetClient().GetVersion()) + b.MetaClientImplementation.Append(event.GetMeta().GetClient().GetImplementation()) + b.MetaClientOS.Append(event.GetMeta().GetClient().GetOs()) + b.MetaClientIP.Append(proto.NewNullable[proto.IPv6](route.NormalizeIPToIPv6(event.GetMeta().GetServer().GetClient().GetIP()))) + b.MetaClientGeoCity.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCity()) + b.MetaClientGeoCountry.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountry()) + b.MetaClientGeoCountryCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountryCode()) + b.MetaClientGeoContinentCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetContinentCode()) + b.MetaClientGeoLongitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLongitude())) + b.MetaClientGeoLatitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLatitude())) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.NewNullable[uint32](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemNumber())) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.NewNullable[string](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemOrganization())) + b.MetaNetworkID.Append(int32(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetId())) + b.MetaNetworkName.Append(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetName()) + b.MetaConsensusVersion.Append(route.NormalizeConsensusVersion(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionMajor.Append(route.ConsensusVersionMajor(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionMinor.Append(route.ConsensusVersionMinor(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionPatch.Append(route.ConsensusVersionPatch(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusImplementation.Append(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetImplementation()) + if labels := event.GetMeta().GetClient().GetLabels(); labels != nil { + b.MetaLabels.Append(labels) + } else { + b.MetaLabels.Append(map[string]string{}) + } +} + +func (b *beaconApiEthV1EventsPayloadAttestationBatch) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &b.UpdatedDateTime}, + {Name: "event_date_time", Data: &b.EventDateTime}, + {Name: "slot", Data: &b.Slot}, + {Name: "slot_start_date_time", Data: &b.SlotStartDateTime}, + {Name: "propagation_slot_start_diff", Data: &b.PropagationSlotStartDiff}, + {Name: "epoch", Data: &b.Epoch}, + {Name: "epoch_start_date_time", Data: &b.EpochStartDateTime}, + {Name: "validator_index", Data: &b.ValidatorIndex}, + {Name: "beacon_block_root", Data: &b.BeaconBlockRoot}, + {Name: "payload_present", Data: &b.PayloadPresent}, + {Name: "blob_data_available", Data: &b.BlobDataAvailable}, + {Name: "meta_client_name", Data: &b.MetaClientName}, + {Name: "meta_client_id", Data: &b.MetaClientID}, + {Name: "meta_client_version", Data: &b.MetaClientVersion}, + {Name: "meta_client_implementation", Data: &b.MetaClientImplementation}, + {Name: "meta_client_os", Data: &b.MetaClientOS}, + {Name: "meta_client_ip", Data: b.MetaClientIP}, + {Name: "meta_client_geo_city", Data: &b.MetaClientGeoCity}, + {Name: "meta_client_geo_country", Data: &b.MetaClientGeoCountry}, + {Name: "meta_client_geo_country_code", Data: &b.MetaClientGeoCountryCode}, + {Name: "meta_client_geo_continent_code", Data: &b.MetaClientGeoContinentCode}, + {Name: "meta_client_geo_longitude", Data: b.MetaClientGeoLongitude}, + {Name: "meta_client_geo_latitude", Data: b.MetaClientGeoLatitude}, + {Name: "meta_client_geo_autonomous_system_number", Data: b.MetaClientGeoAutonomousSystemNumber}, + {Name: "meta_client_geo_autonomous_system_organization", Data: b.MetaClientGeoAutonomousSystemOrganization}, + {Name: "meta_network_id", Data: &b.MetaNetworkID}, + {Name: "meta_network_name", Data: &b.MetaNetworkName}, + {Name: "meta_consensus_version", Data: &b.MetaConsensusVersion}, + {Name: "meta_consensus_version_major", Data: &b.MetaConsensusVersionMajor}, + {Name: "meta_consensus_version_minor", Data: &b.MetaConsensusVersionMinor}, + {Name: "meta_consensus_version_patch", Data: &b.MetaConsensusVersionPatch}, + {Name: "meta_consensus_implementation", Data: &b.MetaConsensusImplementation}, + {Name: "meta_labels", Data: b.MetaLabels}, + } +} + +func (b *beaconApiEthV1EventsPayloadAttestationBatch) Reset() { + b.UpdatedDateTime.Reset() + b.EventDateTime.Reset() + b.Slot.Reset() + b.SlotStartDateTime.Reset() + b.PropagationSlotStartDiff.Reset() + b.Epoch.Reset() + b.EpochStartDateTime.Reset() + b.ValidatorIndex.Reset() + b.BeaconBlockRoot.Reset() + b.PayloadPresent.Reset() + b.BlobDataAvailable.Reset() + b.MetaClientName.Reset() + b.MetaClientID.Reset() + b.MetaClientVersion.Reset() + b.MetaClientImplementation.Reset() + b.MetaClientOS.Reset() + b.MetaClientIP.Reset() + b.MetaClientGeoCity.Reset() + b.MetaClientGeoCountry.Reset() + b.MetaClientGeoCountryCode.Reset() + b.MetaClientGeoContinentCode.Reset() + b.MetaClientGeoLongitude.Reset() + b.MetaClientGeoLatitude.Reset() + b.MetaClientGeoAutonomousSystemNumber.Reset() + b.MetaClientGeoAutonomousSystemOrganization.Reset() + b.MetaNetworkID.Reset() + b.MetaNetworkName.Reset() + b.MetaConsensusVersion.Reset() + b.MetaConsensusVersionMajor.Reset() + b.MetaConsensusVersionMinor.Reset() + b.MetaConsensusVersionPatch.Reset() + b.MetaConsensusImplementation.Reset() + b.MetaLabels.Reset() + b.rows = 0 +} + +func (b *beaconApiEthV1EventsPayloadAttestationBatch) Snapshot() []map[string]any { + n := b.rows + out := make([]map[string]any, n) + + for i := 0; i < n; i++ { + row := make(map[string]any, 33) + row["updated_date_time"] = b.UpdatedDateTime.Row(i).Unix() + row["event_date_time"] = b.EventDateTime.Row(i).UnixMilli() + row["slot"] = b.Slot.Row(i) + row["slot_start_date_time"] = b.SlotStartDateTime.Row(i).Unix() + row["propagation_slot_start_diff"] = b.PropagationSlotStartDiff.Row(i) + row["epoch"] = b.Epoch.Row(i) + row["epoch_start_date_time"] = b.EpochStartDateTime.Row(i).Unix() + row["validator_index"] = b.ValidatorIndex.Row(i) + row["beacon_block_root"] = string(b.BeaconBlockRoot.Row(i)) + row["payload_present"] = b.PayloadPresent.Row(i) + row["blob_data_available"] = b.BlobDataAvailable.Row(i) + row["meta_client_name"] = b.MetaClientName.Row(i) + row["meta_client_id"] = b.MetaClientID.Row(i) + row["meta_client_version"] = b.MetaClientVersion.Row(i) + row["meta_client_implementation"] = b.MetaClientImplementation.Row(i) + row["meta_client_os"] = b.MetaClientOS.Row(i) + if v := b.MetaClientIP.Row(i); v.Set { + row["meta_client_ip"] = net.IP(v.Value[:]).String() + } else { + row["meta_client_ip"] = nil + } + row["meta_client_geo_city"] = b.MetaClientGeoCity.Row(i) + row["meta_client_geo_country"] = b.MetaClientGeoCountry.Row(i) + row["meta_client_geo_country_code"] = b.MetaClientGeoCountryCode.Row(i) + row["meta_client_geo_continent_code"] = b.MetaClientGeoContinentCode.Row(i) + if v := b.MetaClientGeoLongitude.Row(i); v.Set { + row["meta_client_geo_longitude"] = v.Value + } else { + row["meta_client_geo_longitude"] = nil + } + if v := b.MetaClientGeoLatitude.Row(i); v.Set { + row["meta_client_geo_latitude"] = v.Value + } else { + row["meta_client_geo_latitude"] = nil + } + if v := b.MetaClientGeoAutonomousSystemNumber.Row(i); v.Set { + row["meta_client_geo_autonomous_system_number"] = v.Value + } else { + row["meta_client_geo_autonomous_system_number"] = nil + } + if v := b.MetaClientGeoAutonomousSystemOrganization.Row(i); v.Set { + row["meta_client_geo_autonomous_system_organization"] = v.Value + } else { + row["meta_client_geo_autonomous_system_organization"] = nil + } + row["meta_network_id"] = b.MetaNetworkID.Row(i) + row["meta_network_name"] = b.MetaNetworkName.Row(i) + row["meta_consensus_version"] = b.MetaConsensusVersion.Row(i) + row["meta_consensus_version_major"] = b.MetaConsensusVersionMajor.Row(i) + row["meta_consensus_version_minor"] = b.MetaConsensusVersionMinor.Row(i) + row["meta_consensus_version_patch"] = b.MetaConsensusVersionPatch.Row(i) + row["meta_consensus_implementation"] = b.MetaConsensusImplementation.Row(i) + row["meta_labels"] = b.MetaLabels.Row(i) + out[i] = row + } + + return out +} diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation.go new file mode 100644 index 000000000..2bdfda6fa --- /dev/null +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation.go @@ -0,0 +1,43 @@ +package beacon + +import ( + "fmt" + + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +// TODO: Add the xatu.Event_* name(s) that route events to the beacon_api_eth_v1_events_payload_attestation table. +var beaconApiEthV1EventsPayloadAttestationEventNames = []xatu.Event_Name{} + +func init() { + route, err := route.NewStaticRoute( + beaconApiEthV1EventsPayloadAttestationTableName, + beaconApiEthV1EventsPayloadAttestationEventNames, + func() route.ColumnarBatch { return newbeaconApiEthV1EventsPayloadAttestationBatch() }, + ) + if err != nil { + route.RecordError(err) + + return + } + + if err := route.Register(route); err != nil { + route.RecordError(err) + } +} + +func (b *beaconApiEthV1EventsPayloadAttestationBatch) FlattenTo( + event *xatu.DecoratedEvent, +) error { + // TODO: Implement this method to flatten the event into columnar batch columns. + // The generated .gen.go file contains the available column fields for this table. + // + // Typical structure: + // b.appendRuntime(event) + // b.appendMetadata(event) + // b.appendPayload(event) + // b.rows++ + // return nil + return fmt.Errorf("beaconApiEthV1EventsPayloadAttestation: FlattenTo not implemented") +} diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation_test.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation_test.go new file mode 100644 index 000000000..0a5db1022 --- /dev/null +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation_test.go @@ -0,0 +1,27 @@ +package beacon + +import ( + "testing" + + "github.com/ethpandaops/xatu/pkg/consumoor/route/testfixture" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +func TestSnapshot_beacon_api_eth_v1_events_payload_attestation(t *testing.T) { + if len(beaconApiEthV1EventsPayloadAttestationEventNames) == 0 { + t.Skip("no event names registered for beacon_api_eth_v1_events_payload_attestation") + } + + testfixture.AssertSnapshot(t, newbeaconApiEthV1EventsPayloadAttestationBatch(), &xatu.DecoratedEvent{ + Event: &xatu.Event{ + Name: beaconApiEthV1EventsPayloadAttestationEventNames[0], + DateTime: testfixture.TS(), + Id: "snapshot-1", + }, + Meta: testfixture.BaseMeta(), + // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + }, 1, map[string]any{ + "meta_client_name": "test-client", + // TODO: Add payload-specific column assertions. + }) +} diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences.gen.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences.gen.go new file mode 100644 index 000000000..2d4d90e1d --- /dev/null +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences.gen.go @@ -0,0 +1,258 @@ +// Code generated by chgo-rowgen; DO NOT EDIT. + +package beacon + +import ( + "net" + + "github.com/ClickHouse/ch-go/proto" + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +const beaconApiEthV1EventsProposerPreferencesTableName route.TableName = "beacon_api_eth_v1_events_proposer_preferences" + +type beaconApiEthV1EventsProposerPreferencesBatch struct { + UpdatedDateTime proto.ColDateTime + EventDateTime proto.ColDateTime64 + Slot proto.ColUInt32 + SlotStartDateTime proto.ColDateTime + PropagationSlotStartDiff proto.ColUInt32 + Epoch proto.ColUInt32 + EpochStartDateTime proto.ColDateTime + ValidatorIndex proto.ColUInt32 + FeeRecipient route.SafeColFixedStr + GasLimit proto.ColUInt64 + MetaClientName proto.ColStr + MetaClientID proto.ColStr + MetaClientVersion proto.ColStr + MetaClientImplementation proto.ColStr + MetaClientOS proto.ColStr + MetaClientIP *proto.ColNullable[proto.IPv6] + MetaClientGeoCity proto.ColStr + MetaClientGeoCountry proto.ColStr + MetaClientGeoCountryCode proto.ColStr + MetaClientGeoContinentCode proto.ColStr + MetaClientGeoLongitude *proto.ColNullable[float64] + MetaClientGeoLatitude *proto.ColNullable[float64] + MetaClientGeoAutonomousSystemNumber *proto.ColNullable[uint32] + MetaClientGeoAutonomousSystemOrganization *proto.ColNullable[string] + MetaNetworkID proto.ColInt32 + MetaNetworkName proto.ColStr + MetaConsensusVersion proto.ColStr + MetaConsensusVersionMajor proto.ColStr + MetaConsensusVersionMinor proto.ColStr + MetaConsensusVersionPatch proto.ColStr + MetaConsensusImplementation proto.ColStr + MetaLabels *proto.ColMap[string, string] + rows int +} + +func newbeaconApiEthV1EventsProposerPreferencesBatch() *beaconApiEthV1EventsProposerPreferencesBatch { + return &beaconApiEthV1EventsProposerPreferencesBatch{ + EventDateTime: func() proto.ColDateTime64 { var c proto.ColDateTime64; c.WithPrecision(proto.Precision(3)); return c }(), + FeeRecipient: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(42); return c }(), + MetaClientIP: new(proto.ColIPv6).Nullable(), + MetaClientGeoLongitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoLatitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoAutonomousSystemNumber: new(proto.ColUInt32).Nullable(), + MetaClientGeoAutonomousSystemOrganization: new(proto.ColStr).Nullable(), + MetaLabels: proto.NewMap[string, string](new(proto.ColStr), new(proto.ColStr)), + } +} + +func (b *beaconApiEthV1EventsProposerPreferencesBatch) Rows() int { + return b.rows +} + +func (b *beaconApiEthV1EventsProposerPreferencesBatch) appendMetadata(event *xatu.DecoratedEvent) { + if event == nil || event.GetMeta() == nil { + b.MetaClientName.Append("") + b.MetaClientID.Append("") + b.MetaClientVersion.Append("") + b.MetaClientImplementation.Append("") + b.MetaClientOS.Append("") + b.MetaClientIP.Append(proto.Nullable[proto.IPv6]{}) + b.MetaClientGeoCity.Append("") + b.MetaClientGeoCountry.Append("") + b.MetaClientGeoCountryCode.Append("") + b.MetaClientGeoContinentCode.Append("") + b.MetaClientGeoLongitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoLatitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.Nullable[uint32]{}) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.Nullable[string]{}) + b.MetaNetworkID.Append(0) + b.MetaNetworkName.Append("") + b.MetaConsensusVersion.Append("") + b.MetaConsensusVersionMajor.Append("") + b.MetaConsensusVersionMinor.Append("") + b.MetaConsensusVersionPatch.Append("") + b.MetaConsensusImplementation.Append("") + b.MetaLabels.Append(nil) + return + } + + b.MetaClientName.Append(event.GetMeta().GetClient().GetName()) + b.MetaClientID.Append(event.GetMeta().GetClient().GetId()) + b.MetaClientVersion.Append(event.GetMeta().GetClient().GetVersion()) + b.MetaClientImplementation.Append(event.GetMeta().GetClient().GetImplementation()) + b.MetaClientOS.Append(event.GetMeta().GetClient().GetOs()) + b.MetaClientIP.Append(proto.NewNullable[proto.IPv6](route.NormalizeIPToIPv6(event.GetMeta().GetServer().GetClient().GetIP()))) + b.MetaClientGeoCity.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCity()) + b.MetaClientGeoCountry.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountry()) + b.MetaClientGeoCountryCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountryCode()) + b.MetaClientGeoContinentCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetContinentCode()) + b.MetaClientGeoLongitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLongitude())) + b.MetaClientGeoLatitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLatitude())) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.NewNullable[uint32](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemNumber())) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.NewNullable[string](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemOrganization())) + b.MetaNetworkID.Append(int32(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetId())) + b.MetaNetworkName.Append(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetName()) + b.MetaConsensusVersion.Append(route.NormalizeConsensusVersion(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionMajor.Append(route.ConsensusVersionMajor(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionMinor.Append(route.ConsensusVersionMinor(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionPatch.Append(route.ConsensusVersionPatch(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusImplementation.Append(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetImplementation()) + if labels := event.GetMeta().GetClient().GetLabels(); labels != nil { + b.MetaLabels.Append(labels) + } else { + b.MetaLabels.Append(map[string]string{}) + } +} + +func (b *beaconApiEthV1EventsProposerPreferencesBatch) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &b.UpdatedDateTime}, + {Name: "event_date_time", Data: &b.EventDateTime}, + {Name: "slot", Data: &b.Slot}, + {Name: "slot_start_date_time", Data: &b.SlotStartDateTime}, + {Name: "propagation_slot_start_diff", Data: &b.PropagationSlotStartDiff}, + {Name: "epoch", Data: &b.Epoch}, + {Name: "epoch_start_date_time", Data: &b.EpochStartDateTime}, + {Name: "validator_index", Data: &b.ValidatorIndex}, + {Name: "fee_recipient", Data: &b.FeeRecipient}, + {Name: "gas_limit", Data: &b.GasLimit}, + {Name: "meta_client_name", Data: &b.MetaClientName}, + {Name: "meta_client_id", Data: &b.MetaClientID}, + {Name: "meta_client_version", Data: &b.MetaClientVersion}, + {Name: "meta_client_implementation", Data: &b.MetaClientImplementation}, + {Name: "meta_client_os", Data: &b.MetaClientOS}, + {Name: "meta_client_ip", Data: b.MetaClientIP}, + {Name: "meta_client_geo_city", Data: &b.MetaClientGeoCity}, + {Name: "meta_client_geo_country", Data: &b.MetaClientGeoCountry}, + {Name: "meta_client_geo_country_code", Data: &b.MetaClientGeoCountryCode}, + {Name: "meta_client_geo_continent_code", Data: &b.MetaClientGeoContinentCode}, + {Name: "meta_client_geo_longitude", Data: b.MetaClientGeoLongitude}, + {Name: "meta_client_geo_latitude", Data: b.MetaClientGeoLatitude}, + {Name: "meta_client_geo_autonomous_system_number", Data: b.MetaClientGeoAutonomousSystemNumber}, + {Name: "meta_client_geo_autonomous_system_organization", Data: b.MetaClientGeoAutonomousSystemOrganization}, + {Name: "meta_network_id", Data: &b.MetaNetworkID}, + {Name: "meta_network_name", Data: &b.MetaNetworkName}, + {Name: "meta_consensus_version", Data: &b.MetaConsensusVersion}, + {Name: "meta_consensus_version_major", Data: &b.MetaConsensusVersionMajor}, + {Name: "meta_consensus_version_minor", Data: &b.MetaConsensusVersionMinor}, + {Name: "meta_consensus_version_patch", Data: &b.MetaConsensusVersionPatch}, + {Name: "meta_consensus_implementation", Data: &b.MetaConsensusImplementation}, + {Name: "meta_labels", Data: b.MetaLabels}, + } +} + +func (b *beaconApiEthV1EventsProposerPreferencesBatch) Reset() { + b.UpdatedDateTime.Reset() + b.EventDateTime.Reset() + b.Slot.Reset() + b.SlotStartDateTime.Reset() + b.PropagationSlotStartDiff.Reset() + b.Epoch.Reset() + b.EpochStartDateTime.Reset() + b.ValidatorIndex.Reset() + b.FeeRecipient.Reset() + b.GasLimit.Reset() + b.MetaClientName.Reset() + b.MetaClientID.Reset() + b.MetaClientVersion.Reset() + b.MetaClientImplementation.Reset() + b.MetaClientOS.Reset() + b.MetaClientIP.Reset() + b.MetaClientGeoCity.Reset() + b.MetaClientGeoCountry.Reset() + b.MetaClientGeoCountryCode.Reset() + b.MetaClientGeoContinentCode.Reset() + b.MetaClientGeoLongitude.Reset() + b.MetaClientGeoLatitude.Reset() + b.MetaClientGeoAutonomousSystemNumber.Reset() + b.MetaClientGeoAutonomousSystemOrganization.Reset() + b.MetaNetworkID.Reset() + b.MetaNetworkName.Reset() + b.MetaConsensusVersion.Reset() + b.MetaConsensusVersionMajor.Reset() + b.MetaConsensusVersionMinor.Reset() + b.MetaConsensusVersionPatch.Reset() + b.MetaConsensusImplementation.Reset() + b.MetaLabels.Reset() + b.rows = 0 +} + +func (b *beaconApiEthV1EventsProposerPreferencesBatch) Snapshot() []map[string]any { + n := b.rows + out := make([]map[string]any, n) + + for i := 0; i < n; i++ { + row := make(map[string]any, 32) + row["updated_date_time"] = b.UpdatedDateTime.Row(i).Unix() + row["event_date_time"] = b.EventDateTime.Row(i).UnixMilli() + row["slot"] = b.Slot.Row(i) + row["slot_start_date_time"] = b.SlotStartDateTime.Row(i).Unix() + row["propagation_slot_start_diff"] = b.PropagationSlotStartDiff.Row(i) + row["epoch"] = b.Epoch.Row(i) + row["epoch_start_date_time"] = b.EpochStartDateTime.Row(i).Unix() + row["validator_index"] = b.ValidatorIndex.Row(i) + row["fee_recipient"] = string(b.FeeRecipient.Row(i)) + row["gas_limit"] = b.GasLimit.Row(i) + row["meta_client_name"] = b.MetaClientName.Row(i) + row["meta_client_id"] = b.MetaClientID.Row(i) + row["meta_client_version"] = b.MetaClientVersion.Row(i) + row["meta_client_implementation"] = b.MetaClientImplementation.Row(i) + row["meta_client_os"] = b.MetaClientOS.Row(i) + if v := b.MetaClientIP.Row(i); v.Set { + row["meta_client_ip"] = net.IP(v.Value[:]).String() + } else { + row["meta_client_ip"] = nil + } + row["meta_client_geo_city"] = b.MetaClientGeoCity.Row(i) + row["meta_client_geo_country"] = b.MetaClientGeoCountry.Row(i) + row["meta_client_geo_country_code"] = b.MetaClientGeoCountryCode.Row(i) + row["meta_client_geo_continent_code"] = b.MetaClientGeoContinentCode.Row(i) + if v := b.MetaClientGeoLongitude.Row(i); v.Set { + row["meta_client_geo_longitude"] = v.Value + } else { + row["meta_client_geo_longitude"] = nil + } + if v := b.MetaClientGeoLatitude.Row(i); v.Set { + row["meta_client_geo_latitude"] = v.Value + } else { + row["meta_client_geo_latitude"] = nil + } + if v := b.MetaClientGeoAutonomousSystemNumber.Row(i); v.Set { + row["meta_client_geo_autonomous_system_number"] = v.Value + } else { + row["meta_client_geo_autonomous_system_number"] = nil + } + if v := b.MetaClientGeoAutonomousSystemOrganization.Row(i); v.Set { + row["meta_client_geo_autonomous_system_organization"] = v.Value + } else { + row["meta_client_geo_autonomous_system_organization"] = nil + } + row["meta_network_id"] = b.MetaNetworkID.Row(i) + row["meta_network_name"] = b.MetaNetworkName.Row(i) + row["meta_consensus_version"] = b.MetaConsensusVersion.Row(i) + row["meta_consensus_version_major"] = b.MetaConsensusVersionMajor.Row(i) + row["meta_consensus_version_minor"] = b.MetaConsensusVersionMinor.Row(i) + row["meta_consensus_version_patch"] = b.MetaConsensusVersionPatch.Row(i) + row["meta_consensus_implementation"] = b.MetaConsensusImplementation.Row(i) + row["meta_labels"] = b.MetaLabels.Row(i) + out[i] = row + } + + return out +} diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences.go new file mode 100644 index 000000000..ff0cbd4a4 --- /dev/null +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences.go @@ -0,0 +1,43 @@ +package beacon + +import ( + "fmt" + + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +// TODO: Add the xatu.Event_* name(s) that route events to the beacon_api_eth_v1_events_proposer_preferences table. +var beaconApiEthV1EventsProposerPreferencesEventNames = []xatu.Event_Name{} + +func init() { + route, err := route.NewStaticRoute( + beaconApiEthV1EventsProposerPreferencesTableName, + beaconApiEthV1EventsProposerPreferencesEventNames, + func() route.ColumnarBatch { return newbeaconApiEthV1EventsProposerPreferencesBatch() }, + ) + if err != nil { + route.RecordError(err) + + return + } + + if err := route.Register(route); err != nil { + route.RecordError(err) + } +} + +func (b *beaconApiEthV1EventsProposerPreferencesBatch) FlattenTo( + event *xatu.DecoratedEvent, +) error { + // TODO: Implement this method to flatten the event into columnar batch columns. + // The generated .gen.go file contains the available column fields for this table. + // + // Typical structure: + // b.appendRuntime(event) + // b.appendMetadata(event) + // b.appendPayload(event) + // b.rows++ + // return nil + return fmt.Errorf("beaconApiEthV1EventsProposerPreferences: FlattenTo not implemented") +} diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences_test.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences_test.go new file mode 100644 index 000000000..fcc467d7a --- /dev/null +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences_test.go @@ -0,0 +1,27 @@ +package beacon + +import ( + "testing" + + "github.com/ethpandaops/xatu/pkg/consumoor/route/testfixture" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +func TestSnapshot_beacon_api_eth_v1_events_proposer_preferences(t *testing.T) { + if len(beaconApiEthV1EventsProposerPreferencesEventNames) == 0 { + t.Skip("no event names registered for beacon_api_eth_v1_events_proposer_preferences") + } + + testfixture.AssertSnapshot(t, newbeaconApiEthV1EventsProposerPreferencesBatch(), &xatu.DecoratedEvent{ + Event: &xatu.Event{ + Name: beaconApiEthV1EventsProposerPreferencesEventNames[0], + DateTime: testfixture.TS(), + Id: "snapshot-1", + }, + Meta: testfixture.BaseMeta(), + // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + }, 1, map[string]any{ + "meta_client_name": "test-client", + // TODO: Add payload-specific column assertions. + }) +} diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.gen.go b/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.gen.go index bd1806f42..71f1d552f 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.gen.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.gen.go @@ -35,6 +35,10 @@ type beaconApiEthV2BeaconBlockBatch struct { ExecutionPayloadBlobGasUsed *proto.ColNullable[uint64] ExecutionPayloadExcessBlobGas *proto.ColNullable[uint64] ExecutionPayloadSlotNumber *proto.ColNullable[uint64] + BuilderIndex *proto.ColNullable[uint64] + BidValue *proto.ColNullable[uint64] + ExecutionPayment *proto.ColNullable[uint64] + PayloadPresent *proto.ColNullable[bool] ExecutionPayloadGasLimit *proto.ColNullable[uint64] ExecutionPayloadGasUsed *proto.ColNullable[uint64] ExecutionPayloadStateRoot route.SafeColFixedStr @@ -69,32 +73,36 @@ type beaconApiEthV2BeaconBlockBatch struct { func newbeaconApiEthV2BeaconBlockBatch() *beaconApiEthV2BeaconBlockBatch { return &beaconApiEthV2BeaconBlockBatch{ - EventDateTime: func() proto.ColDateTime64 { var c proto.ColDateTime64; c.WithPrecision(proto.Precision(3)); return c }(), - BlockRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), - BlockTotalBytes: new(proto.ColUInt32).Nullable(), - BlockTotalBytesCompressed: new(proto.ColUInt32).Nullable(), - ParentRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), - StateRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), - Eth1DataBlockHash: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), - Eth1DataDepositRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), - ExecutionPayloadBlockHash: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), - ExecutionPayloadBaseFeePerGas: new(proto.ColUInt128).Nullable(), - ExecutionPayloadBlobGasUsed: new(proto.ColUInt64).Nullable(), - ExecutionPayloadExcessBlobGas: new(proto.ColUInt64).Nullable(), - ExecutionPayloadSlotNumber: new(proto.ColUInt64).Nullable(), - ExecutionPayloadGasLimit: new(proto.ColUInt64).Nullable(), - ExecutionPayloadGasUsed: new(proto.ColUInt64).Nullable(), - ExecutionPayloadStateRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), - ExecutionPayloadParentHash: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), - ExecutionPayloadTransactionsCount: new(proto.ColUInt32).Nullable(), - ExecutionPayloadTransactionsTotalBytes: new(proto.ColUInt32).Nullable(), + EventDateTime: func() proto.ColDateTime64 { var c proto.ColDateTime64; c.WithPrecision(proto.Precision(3)); return c }(), + BlockRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + BlockTotalBytes: new(proto.ColUInt32).Nullable(), + BlockTotalBytesCompressed: new(proto.ColUInt32).Nullable(), + ParentRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + StateRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + Eth1DataBlockHash: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + Eth1DataDepositRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + ExecutionPayloadBlockHash: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + ExecutionPayloadBaseFeePerGas: new(proto.ColUInt128).Nullable(), + ExecutionPayloadBlobGasUsed: new(proto.ColUInt64).Nullable(), + ExecutionPayloadExcessBlobGas: new(proto.ColUInt64).Nullable(), + ExecutionPayloadSlotNumber: new(proto.ColUInt64).Nullable(), + BuilderIndex: new(proto.ColUInt64).Nullable(), + BidValue: new(proto.ColUInt64).Nullable(), + ExecutionPayment: new(proto.ColUInt64).Nullable(), + PayloadPresent: new(proto.ColBool).Nullable(), + ExecutionPayloadGasLimit: new(proto.ColUInt64).Nullable(), + ExecutionPayloadGasUsed: new(proto.ColUInt64).Nullable(), + ExecutionPayloadStateRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + ExecutionPayloadParentHash: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + ExecutionPayloadTransactionsCount: new(proto.ColUInt32).Nullable(), + ExecutionPayloadTransactionsTotalBytes: new(proto.ColUInt32).Nullable(), ExecutionPayloadTransactionsTotalBytesCompressed: new(proto.ColUInt32).Nullable(), - MetaClientIP: new(proto.ColIPv6).Nullable(), - MetaClientGeoLongitude: new(proto.ColFloat64).Nullable(), - MetaClientGeoLatitude: new(proto.ColFloat64).Nullable(), - MetaClientGeoAutonomousSystemNumber: new(proto.ColUInt32).Nullable(), - MetaClientGeoAutonomousSystemOrganization: new(proto.ColStr).Nullable(), - MetaLabels: proto.NewMap[string, string](new(proto.ColStr), new(proto.ColStr)), + MetaClientIP: new(proto.ColIPv6).Nullable(), + MetaClientGeoLongitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoLatitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoAutonomousSystemNumber: new(proto.ColUInt32).Nullable(), + MetaClientGeoAutonomousSystemOrganization: new(proto.ColStr).Nullable(), + MetaLabels: proto.NewMap[string, string](new(proto.ColStr), new(proto.ColStr)), } } @@ -181,6 +189,10 @@ func (b *beaconApiEthV2BeaconBlockBatch) Input() proto.Input { {Name: "execution_payload_blob_gas_used", Data: b.ExecutionPayloadBlobGasUsed}, {Name: "execution_payload_excess_blob_gas", Data: b.ExecutionPayloadExcessBlobGas}, {Name: "execution_payload_slot_number", Data: b.ExecutionPayloadSlotNumber}, + {Name: "builder_index", Data: b.BuilderIndex}, + {Name: "bid_value", Data: b.BidValue}, + {Name: "execution_payment", Data: b.ExecutionPayment}, + {Name: "payload_present", Data: b.PayloadPresent}, {Name: "execution_payload_gas_limit", Data: b.ExecutionPayloadGasLimit}, {Name: "execution_payload_gas_used", Data: b.ExecutionPayloadGasUsed}, {Name: "execution_payload_state_root", Data: &b.ExecutionPayloadStateRoot}, @@ -236,6 +248,10 @@ func (b *beaconApiEthV2BeaconBlockBatch) Reset() { b.ExecutionPayloadBlobGasUsed.Reset() b.ExecutionPayloadExcessBlobGas.Reset() b.ExecutionPayloadSlotNumber.Reset() + b.BuilderIndex.Reset() + b.BidValue.Reset() + b.ExecutionPayment.Reset() + b.PayloadPresent.Reset() b.ExecutionPayloadGasLimit.Reset() b.ExecutionPayloadGasUsed.Reset() b.ExecutionPayloadStateRoot.Reset() @@ -273,7 +289,7 @@ func (b *beaconApiEthV2BeaconBlockBatch) Snapshot() []map[string]any { out := make([]map[string]any, n) for i := 0; i < n; i++ { - row := make(map[string]any, 50) + row := make(map[string]any, 55) row["updated_date_time"] = b.UpdatedDateTime.Row(i).Unix() row["event_date_time"] = b.EventDateTime.Row(i).UnixMilli() row["slot"] = b.Slot.Row(i) @@ -320,6 +336,26 @@ func (b *beaconApiEthV2BeaconBlockBatch) Snapshot() []map[string]any { } else { row["execution_payload_slot_number"] = nil } + if v := b.BuilderIndex.Row(i); v.Set { + row["builder_index"] = v.Value + } else { + row["builder_index"] = nil + } + if v := b.BidValue.Row(i); v.Set { + row["bid_value"] = v.Value + } else { + row["bid_value"] = nil + } + if v := b.ExecutionPayment.Row(i); v.Set { + row["execution_payment"] = v.Value + } else { + row["execution_payment"] = nil + } + if v := b.PayloadPresent.Row(i); v.Set { + row["payload_present"] = v.Value + } else { + row["payload_present"] = nil + } if v := b.ExecutionPayloadGasLimit.Row(i); v.Set { row["execution_payload_gas_limit"] = v.Value } else { diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block.gen.go b/pkg/consumoor/route/canonical/canonical_beacon_block.gen.go index bd047acc0..fe4ac91bb 100644 --- a/pkg/consumoor/route/canonical/canonical_beacon_block.gen.go +++ b/pkg/consumoor/route/canonical/canonical_beacon_block.gen.go @@ -34,6 +34,11 @@ type canonicalBeaconBlockBatch struct { ExecutionPayloadBlobGasUsed *proto.ColNullable[uint64] ExecutionPayloadExcessBlobGas *proto.ColNullable[uint64] ExecutionPayloadSlotNumber *proto.ColNullable[uint64] + ExecutionPayloadBlockAccessListRoot *proto.ColNullable[[]byte] + BuilderIndex *proto.ColNullable[uint64] + BidValue *proto.ColNullable[uint64] + ExecutionPayment *proto.ColNullable[uint64] + PayloadPresent *proto.ColNullable[bool] ExecutionPayloadGasLimit *proto.ColNullable[uint64] ExecutionPayloadGasUsed *proto.ColNullable[uint64] ExecutionPayloadStateRoot *proto.ColNullable[[]byte] @@ -82,6 +87,11 @@ func newcanonicalBeaconBlockBatch() *canonicalBeaconBlockBatch { ExecutionPayloadBlobGasUsed: new(proto.ColUInt64).Nullable(), ExecutionPayloadExcessBlobGas: new(proto.ColUInt64).Nullable(), ExecutionPayloadSlotNumber: new(proto.ColUInt64).Nullable(), + ExecutionPayloadBlockAccessListRoot: route.NewNullableFixedStr(66), + BuilderIndex: new(proto.ColUInt64).Nullable(), + BidValue: new(proto.ColUInt64).Nullable(), + ExecutionPayment: new(proto.ColUInt64).Nullable(), + PayloadPresent: new(proto.ColBool).Nullable(), ExecutionPayloadGasLimit: new(proto.ColUInt64).Nullable(), ExecutionPayloadGasUsed: new(proto.ColUInt64).Nullable(), ExecutionPayloadStateRoot: route.NewNullableFixedStr(66), @@ -180,6 +190,11 @@ func (b *canonicalBeaconBlockBatch) Input() proto.Input { {Name: "execution_payload_blob_gas_used", Data: b.ExecutionPayloadBlobGasUsed}, {Name: "execution_payload_excess_blob_gas", Data: b.ExecutionPayloadExcessBlobGas}, {Name: "execution_payload_slot_number", Data: b.ExecutionPayloadSlotNumber}, + {Name: "execution_payload_block_access_list_root", Data: b.ExecutionPayloadBlockAccessListRoot}, + {Name: "builder_index", Data: b.BuilderIndex}, + {Name: "bid_value", Data: b.BidValue}, + {Name: "execution_payment", Data: b.ExecutionPayment}, + {Name: "payload_present", Data: b.PayloadPresent}, {Name: "execution_payload_gas_limit", Data: b.ExecutionPayloadGasLimit}, {Name: "execution_payload_gas_used", Data: b.ExecutionPayloadGasUsed}, {Name: "execution_payload_state_root", Data: b.ExecutionPayloadStateRoot}, @@ -234,6 +249,11 @@ func (b *canonicalBeaconBlockBatch) Reset() { b.ExecutionPayloadBlobGasUsed.Reset() b.ExecutionPayloadExcessBlobGas.Reset() b.ExecutionPayloadSlotNumber.Reset() + b.ExecutionPayloadBlockAccessListRoot.Reset() + b.BuilderIndex.Reset() + b.BidValue.Reset() + b.ExecutionPayment.Reset() + b.PayloadPresent.Reset() b.ExecutionPayloadGasLimit.Reset() b.ExecutionPayloadGasUsed.Reset() b.ExecutionPayloadStateRoot.Reset() @@ -271,7 +291,7 @@ func (b *canonicalBeaconBlockBatch) Snapshot() []map[string]any { out := make([]map[string]any, n) for i := 0; i < n; i++ { - row := make(map[string]any, 49) + row := make(map[string]any, 55) row["updated_date_time"] = b.UpdatedDateTime.Row(i).Unix() row["slot"] = b.Slot.Row(i) row["slot_start_date_time"] = b.SlotStartDateTime.Row(i).Unix() @@ -329,6 +349,31 @@ func (b *canonicalBeaconBlockBatch) Snapshot() []map[string]any { } else { row["execution_payload_slot_number"] = nil } + if v := b.ExecutionPayloadBlockAccessListRoot.Row(i); v.Set { + row["execution_payload_block_access_list_root"] = string(v.Value) + } else { + row["execution_payload_block_access_list_root"] = nil + } + if v := b.BuilderIndex.Row(i); v.Set { + row["builder_index"] = v.Value + } else { + row["builder_index"] = nil + } + if v := b.BidValue.Row(i); v.Set { + row["bid_value"] = v.Value + } else { + row["bid_value"] = nil + } + if v := b.ExecutionPayment.Row(i); v.Set { + row["execution_payment"] = v.Value + } else { + row["execution_payment"] = nil + } + if v := b.PayloadPresent.Row(i); v.Set { + row["payload_present"] = v.Value + } else { + row["payload_present"] = nil + } if v := b.ExecutionPayloadGasLimit.Row(i); v.Set { row["execution_payload_gas_limit"] = v.Value } else { diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.gen.go b/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.gen.go index 22d642efa..9f1d29582 100644 --- a/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.gen.go +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.gen.go @@ -19,11 +19,11 @@ type canonicalBeaconBlockAccessListBatch struct { Epoch proto.ColUInt32 EpochStartDateTime proto.ColDateTime BlockRoot route.SafeColFixedStr - BlockNumber proto.ColUInt32 + BlockNumber proto.ColUInt64 BlockHash route.SafeColFixedStr Address route.SafeColFixedStr ChangeType proto.ColStr - BlockAccessIndex proto.ColUInt32 + BlockAccessIndex proto.ColUInt16 StorageKey route.SafeColFixedStr NewValue *proto.ColNullable[string] MetaClientName proto.ColStr @@ -43,9 +43,6 @@ type canonicalBeaconBlockAccessListBatch struct { MetaNetworkID proto.ColInt32 MetaNetworkName proto.ColStr MetaConsensusVersion proto.ColStr - MetaConsensusVersionMajor proto.ColStr - MetaConsensusVersionMinor proto.ColStr - MetaConsensusVersionPatch proto.ColStr MetaConsensusImplementation proto.ColStr MetaLabels *proto.ColMap[string, string] rows int @@ -90,9 +87,6 @@ func (b *canonicalBeaconBlockAccessListBatch) appendMetadata(event *xatu.Decorat b.MetaNetworkID.Append(0) b.MetaNetworkName.Append("") b.MetaConsensusVersion.Append("") - b.MetaConsensusVersionMajor.Append("") - b.MetaConsensusVersionMinor.Append("") - b.MetaConsensusVersionPatch.Append("") b.MetaConsensusImplementation.Append("") b.MetaLabels.Append(nil) return @@ -115,9 +109,6 @@ func (b *canonicalBeaconBlockAccessListBatch) appendMetadata(event *xatu.Decorat b.MetaNetworkID.Append(int32(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetId())) b.MetaNetworkName.Append(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetName()) b.MetaConsensusVersion.Append(route.NormalizeConsensusVersion(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) - b.MetaConsensusVersionMajor.Append(route.ConsensusVersionMajor(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) - b.MetaConsensusVersionMinor.Append(route.ConsensusVersionMinor(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) - b.MetaConsensusVersionPatch.Append(route.ConsensusVersionPatch(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) b.MetaConsensusImplementation.Append(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetImplementation()) if labels := event.GetMeta().GetClient().GetLabels(); labels != nil { b.MetaLabels.Append(labels) @@ -139,7 +130,7 @@ func (b *canonicalBeaconBlockAccessListBatch) Input() proto.Input { {Name: "address", Data: &b.Address}, {Name: "change_type", Data: &b.ChangeType}, {Name: "block_access_index", Data: &b.BlockAccessIndex}, - {Name: "storage_key", Data: b.StorageKey}, + {Name: "storage_key", Data: &b.StorageKey}, {Name: "new_value", Data: b.NewValue}, {Name: "meta_client_name", Data: &b.MetaClientName}, {Name: "meta_client_id", Data: &b.MetaClientID}, @@ -158,9 +149,6 @@ func (b *canonicalBeaconBlockAccessListBatch) Input() proto.Input { {Name: "meta_network_id", Data: &b.MetaNetworkID}, {Name: "meta_network_name", Data: &b.MetaNetworkName}, {Name: "meta_consensus_version", Data: &b.MetaConsensusVersion}, - {Name: "meta_consensus_version_major", Data: &b.MetaConsensusVersionMajor}, - {Name: "meta_consensus_version_minor", Data: &b.MetaConsensusVersionMinor}, - {Name: "meta_consensus_version_patch", Data: &b.MetaConsensusVersionPatch}, {Name: "meta_consensus_implementation", Data: &b.MetaConsensusImplementation}, {Name: "meta_labels", Data: b.MetaLabels}, } @@ -197,9 +185,6 @@ func (b *canonicalBeaconBlockAccessListBatch) Reset() { b.MetaNetworkID.Reset() b.MetaNetworkName.Reset() b.MetaConsensusVersion.Reset() - b.MetaConsensusVersionMajor.Reset() - b.MetaConsensusVersionMinor.Reset() - b.MetaConsensusVersionPatch.Reset() b.MetaConsensusImplementation.Reset() b.MetaLabels.Reset() b.rows = 0 @@ -210,7 +195,7 @@ func (b *canonicalBeaconBlockAccessListBatch) Snapshot() []map[string]any { out := make([]map[string]any, n) for i := 0; i < n; i++ { - row := make(map[string]any, 36) + row := make(map[string]any, 32) row["updated_date_time"] = b.UpdatedDateTime.Row(i).Unix() row["slot"] = b.Slot.Row(i) row["slot_start_date_time"] = b.SlotStartDateTime.Row(i).Unix() @@ -265,9 +250,6 @@ func (b *canonicalBeaconBlockAccessListBatch) Snapshot() []map[string]any { row["meta_network_id"] = b.MetaNetworkID.Row(i) row["meta_network_name"] = b.MetaNetworkName.Row(i) row["meta_consensus_version"] = b.MetaConsensusVersion.Row(i) - row["meta_consensus_version_major"] = b.MetaConsensusVersionMajor.Row(i) - row["meta_consensus_version_minor"] = b.MetaConsensusVersionMinor.Row(i) - row["meta_consensus_version_patch"] = b.MetaConsensusVersionPatch.Row(i) row["meta_consensus_implementation"] = b.MetaConsensusImplementation.Row(i) row["meta_labels"] = b.MetaLabels.Row(i) out[i] = row diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid.gen.go b/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid.gen.go new file mode 100644 index 000000000..fe176b284 --- /dev/null +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid.gen.go @@ -0,0 +1,290 @@ +// Code generated by chgo-rowgen; DO NOT EDIT. + +package canonical + +import ( + "net" + + "github.com/ClickHouse/ch-go/proto" + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +const canonicalBeaconBlockExecutionPayloadBidTableName route.TableName = "canonical_beacon_block_execution_payload_bid" + +type canonicalBeaconBlockExecutionPayloadBidBatch struct { + UpdatedDateTime proto.ColDateTime + Slot proto.ColUInt32 + SlotStartDateTime proto.ColDateTime + Epoch proto.ColUInt32 + EpochStartDateTime proto.ColDateTime + BlockRoot route.SafeColFixedStr + BlockVersion proto.ColStr + BuilderIndex proto.ColUInt64 + BlockHash route.SafeColFixedStr + ParentBlockHash route.SafeColFixedStr + ParentBlockRoot route.SafeColFixedStr + Value proto.ColUInt64 + ExecutionPayment proto.ColUInt64 + FeeRecipient route.SafeColFixedStr + GasLimit proto.ColUInt64 + PrevRandao route.SafeColFixedStr + BlobKzgCommitmentCount proto.ColUInt32 + MetaClientName proto.ColStr + MetaClientID proto.ColStr + MetaClientVersion proto.ColStr + MetaClientImplementation proto.ColStr + MetaClientOS proto.ColStr + MetaClientIP *proto.ColNullable[proto.IPv6] + MetaClientGeoCity proto.ColStr + MetaClientGeoCountry proto.ColStr + MetaClientGeoCountryCode proto.ColStr + MetaClientGeoContinentCode proto.ColStr + MetaClientGeoLongitude *proto.ColNullable[float64] + MetaClientGeoLatitude *proto.ColNullable[float64] + MetaClientGeoAutonomousSystemNumber *proto.ColNullable[uint32] + MetaClientGeoAutonomousSystemOrganization *proto.ColNullable[string] + MetaNetworkID proto.ColInt32 + MetaNetworkName proto.ColStr + MetaConsensusVersion proto.ColStr + MetaConsensusVersionMajor proto.ColStr + MetaConsensusVersionMinor proto.ColStr + MetaConsensusVersionPatch proto.ColStr + MetaConsensusImplementation proto.ColStr + MetaLabels *proto.ColMap[string, string] + rows int +} + +func newcanonicalBeaconBlockExecutionPayloadBidBatch() *canonicalBeaconBlockExecutionPayloadBidBatch { + return &canonicalBeaconBlockExecutionPayloadBidBatch{ + BlockRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + BlockHash: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + ParentBlockHash: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + ParentBlockRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + FeeRecipient: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(42); return c }(), + PrevRandao: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + MetaClientIP: new(proto.ColIPv6).Nullable(), + MetaClientGeoLongitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoLatitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoAutonomousSystemNumber: new(proto.ColUInt32).Nullable(), + MetaClientGeoAutonomousSystemOrganization: new(proto.ColStr).Nullable(), + MetaLabels: proto.NewMap[string, string](new(proto.ColStr), new(proto.ColStr)), + } +} + +func (b *canonicalBeaconBlockExecutionPayloadBidBatch) Rows() int { + return b.rows +} + +func (b *canonicalBeaconBlockExecutionPayloadBidBatch) appendMetadata(event *xatu.DecoratedEvent) { + if event == nil || event.GetMeta() == nil { + b.MetaClientName.Append("") + b.MetaClientID.Append("") + b.MetaClientVersion.Append("") + b.MetaClientImplementation.Append("") + b.MetaClientOS.Append("") + b.MetaClientIP.Append(proto.Nullable[proto.IPv6]{}) + b.MetaClientGeoCity.Append("") + b.MetaClientGeoCountry.Append("") + b.MetaClientGeoCountryCode.Append("") + b.MetaClientGeoContinentCode.Append("") + b.MetaClientGeoLongitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoLatitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.Nullable[uint32]{}) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.Nullable[string]{}) + b.MetaNetworkID.Append(0) + b.MetaNetworkName.Append("") + b.MetaConsensusVersion.Append("") + b.MetaConsensusVersionMajor.Append("") + b.MetaConsensusVersionMinor.Append("") + b.MetaConsensusVersionPatch.Append("") + b.MetaConsensusImplementation.Append("") + b.MetaLabels.Append(nil) + return + } + + b.MetaClientName.Append(event.GetMeta().GetClient().GetName()) + b.MetaClientID.Append(event.GetMeta().GetClient().GetId()) + b.MetaClientVersion.Append(event.GetMeta().GetClient().GetVersion()) + b.MetaClientImplementation.Append(event.GetMeta().GetClient().GetImplementation()) + b.MetaClientOS.Append(event.GetMeta().GetClient().GetOs()) + b.MetaClientIP.Append(proto.NewNullable[proto.IPv6](route.NormalizeIPToIPv6(event.GetMeta().GetServer().GetClient().GetIP()))) + b.MetaClientGeoCity.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCity()) + b.MetaClientGeoCountry.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountry()) + b.MetaClientGeoCountryCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountryCode()) + b.MetaClientGeoContinentCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetContinentCode()) + b.MetaClientGeoLongitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLongitude())) + b.MetaClientGeoLatitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLatitude())) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.NewNullable[uint32](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemNumber())) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.NewNullable[string](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemOrganization())) + b.MetaNetworkID.Append(int32(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetId())) + b.MetaNetworkName.Append(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetName()) + b.MetaConsensusVersion.Append(route.NormalizeConsensusVersion(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionMajor.Append(route.ConsensusVersionMajor(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionMinor.Append(route.ConsensusVersionMinor(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionPatch.Append(route.ConsensusVersionPatch(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusImplementation.Append(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetImplementation()) + if labels := event.GetMeta().GetClient().GetLabels(); labels != nil { + b.MetaLabels.Append(labels) + } else { + b.MetaLabels.Append(map[string]string{}) + } +} + +func (b *canonicalBeaconBlockExecutionPayloadBidBatch) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &b.UpdatedDateTime}, + {Name: "slot", Data: &b.Slot}, + {Name: "slot_start_date_time", Data: &b.SlotStartDateTime}, + {Name: "epoch", Data: &b.Epoch}, + {Name: "epoch_start_date_time", Data: &b.EpochStartDateTime}, + {Name: "block_root", Data: &b.BlockRoot}, + {Name: "block_version", Data: &b.BlockVersion}, + {Name: "builder_index", Data: &b.BuilderIndex}, + {Name: "block_hash", Data: &b.BlockHash}, + {Name: "parent_block_hash", Data: &b.ParentBlockHash}, + {Name: "parent_block_root", Data: &b.ParentBlockRoot}, + {Name: "value", Data: &b.Value}, + {Name: "execution_payment", Data: &b.ExecutionPayment}, + {Name: "fee_recipient", Data: &b.FeeRecipient}, + {Name: "gas_limit", Data: &b.GasLimit}, + {Name: "prev_randao", Data: &b.PrevRandao}, + {Name: "blob_kzg_commitment_count", Data: &b.BlobKzgCommitmentCount}, + {Name: "meta_client_name", Data: &b.MetaClientName}, + {Name: "meta_client_id", Data: &b.MetaClientID}, + {Name: "meta_client_version", Data: &b.MetaClientVersion}, + {Name: "meta_client_implementation", Data: &b.MetaClientImplementation}, + {Name: "meta_client_os", Data: &b.MetaClientOS}, + {Name: "meta_client_ip", Data: b.MetaClientIP}, + {Name: "meta_client_geo_city", Data: &b.MetaClientGeoCity}, + {Name: "meta_client_geo_country", Data: &b.MetaClientGeoCountry}, + {Name: "meta_client_geo_country_code", Data: &b.MetaClientGeoCountryCode}, + {Name: "meta_client_geo_continent_code", Data: &b.MetaClientGeoContinentCode}, + {Name: "meta_client_geo_longitude", Data: b.MetaClientGeoLongitude}, + {Name: "meta_client_geo_latitude", Data: b.MetaClientGeoLatitude}, + {Name: "meta_client_geo_autonomous_system_number", Data: b.MetaClientGeoAutonomousSystemNumber}, + {Name: "meta_client_geo_autonomous_system_organization", Data: b.MetaClientGeoAutonomousSystemOrganization}, + {Name: "meta_network_id", Data: &b.MetaNetworkID}, + {Name: "meta_network_name", Data: &b.MetaNetworkName}, + {Name: "meta_consensus_version", Data: &b.MetaConsensusVersion}, + {Name: "meta_consensus_version_major", Data: &b.MetaConsensusVersionMajor}, + {Name: "meta_consensus_version_minor", Data: &b.MetaConsensusVersionMinor}, + {Name: "meta_consensus_version_patch", Data: &b.MetaConsensusVersionPatch}, + {Name: "meta_consensus_implementation", Data: &b.MetaConsensusImplementation}, + {Name: "meta_labels", Data: b.MetaLabels}, + } +} + +func (b *canonicalBeaconBlockExecutionPayloadBidBatch) Reset() { + b.UpdatedDateTime.Reset() + b.Slot.Reset() + b.SlotStartDateTime.Reset() + b.Epoch.Reset() + b.EpochStartDateTime.Reset() + b.BlockRoot.Reset() + b.BlockVersion.Reset() + b.BuilderIndex.Reset() + b.BlockHash.Reset() + b.ParentBlockHash.Reset() + b.ParentBlockRoot.Reset() + b.Value.Reset() + b.ExecutionPayment.Reset() + b.FeeRecipient.Reset() + b.GasLimit.Reset() + b.PrevRandao.Reset() + b.BlobKzgCommitmentCount.Reset() + b.MetaClientName.Reset() + b.MetaClientID.Reset() + b.MetaClientVersion.Reset() + b.MetaClientImplementation.Reset() + b.MetaClientOS.Reset() + b.MetaClientIP.Reset() + b.MetaClientGeoCity.Reset() + b.MetaClientGeoCountry.Reset() + b.MetaClientGeoCountryCode.Reset() + b.MetaClientGeoContinentCode.Reset() + b.MetaClientGeoLongitude.Reset() + b.MetaClientGeoLatitude.Reset() + b.MetaClientGeoAutonomousSystemNumber.Reset() + b.MetaClientGeoAutonomousSystemOrganization.Reset() + b.MetaNetworkID.Reset() + b.MetaNetworkName.Reset() + b.MetaConsensusVersion.Reset() + b.MetaConsensusVersionMajor.Reset() + b.MetaConsensusVersionMinor.Reset() + b.MetaConsensusVersionPatch.Reset() + b.MetaConsensusImplementation.Reset() + b.MetaLabels.Reset() + b.rows = 0 +} + +func (b *canonicalBeaconBlockExecutionPayloadBidBatch) Snapshot() []map[string]any { + n := b.rows + out := make([]map[string]any, n) + + for i := 0; i < n; i++ { + row := make(map[string]any, 39) + row["updated_date_time"] = b.UpdatedDateTime.Row(i).Unix() + row["slot"] = b.Slot.Row(i) + row["slot_start_date_time"] = b.SlotStartDateTime.Row(i).Unix() + row["epoch"] = b.Epoch.Row(i) + row["epoch_start_date_time"] = b.EpochStartDateTime.Row(i).Unix() + row["block_root"] = string(b.BlockRoot.Row(i)) + row["block_version"] = b.BlockVersion.Row(i) + row["builder_index"] = b.BuilderIndex.Row(i) + row["block_hash"] = string(b.BlockHash.Row(i)) + row["parent_block_hash"] = string(b.ParentBlockHash.Row(i)) + row["parent_block_root"] = string(b.ParentBlockRoot.Row(i)) + row["value"] = b.Value.Row(i) + row["execution_payment"] = b.ExecutionPayment.Row(i) + row["fee_recipient"] = string(b.FeeRecipient.Row(i)) + row["gas_limit"] = b.GasLimit.Row(i) + row["prev_randao"] = string(b.PrevRandao.Row(i)) + row["blob_kzg_commitment_count"] = b.BlobKzgCommitmentCount.Row(i) + row["meta_client_name"] = b.MetaClientName.Row(i) + row["meta_client_id"] = b.MetaClientID.Row(i) + row["meta_client_version"] = b.MetaClientVersion.Row(i) + row["meta_client_implementation"] = b.MetaClientImplementation.Row(i) + row["meta_client_os"] = b.MetaClientOS.Row(i) + if v := b.MetaClientIP.Row(i); v.Set { + row["meta_client_ip"] = net.IP(v.Value[:]).String() + } else { + row["meta_client_ip"] = nil + } + row["meta_client_geo_city"] = b.MetaClientGeoCity.Row(i) + row["meta_client_geo_country"] = b.MetaClientGeoCountry.Row(i) + row["meta_client_geo_country_code"] = b.MetaClientGeoCountryCode.Row(i) + row["meta_client_geo_continent_code"] = b.MetaClientGeoContinentCode.Row(i) + if v := b.MetaClientGeoLongitude.Row(i); v.Set { + row["meta_client_geo_longitude"] = v.Value + } else { + row["meta_client_geo_longitude"] = nil + } + if v := b.MetaClientGeoLatitude.Row(i); v.Set { + row["meta_client_geo_latitude"] = v.Value + } else { + row["meta_client_geo_latitude"] = nil + } + if v := b.MetaClientGeoAutonomousSystemNumber.Row(i); v.Set { + row["meta_client_geo_autonomous_system_number"] = v.Value + } else { + row["meta_client_geo_autonomous_system_number"] = nil + } + if v := b.MetaClientGeoAutonomousSystemOrganization.Row(i); v.Set { + row["meta_client_geo_autonomous_system_organization"] = v.Value + } else { + row["meta_client_geo_autonomous_system_organization"] = nil + } + row["meta_network_id"] = b.MetaNetworkID.Row(i) + row["meta_network_name"] = b.MetaNetworkName.Row(i) + row["meta_consensus_version"] = b.MetaConsensusVersion.Row(i) + row["meta_consensus_version_major"] = b.MetaConsensusVersionMajor.Row(i) + row["meta_consensus_version_minor"] = b.MetaConsensusVersionMinor.Row(i) + row["meta_consensus_version_patch"] = b.MetaConsensusVersionPatch.Row(i) + row["meta_consensus_implementation"] = b.MetaConsensusImplementation.Row(i) + row["meta_labels"] = b.MetaLabels.Row(i) + out[i] = row + } + + return out +} diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid.go b/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid.go new file mode 100644 index 000000000..be9bf80ce --- /dev/null +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid.go @@ -0,0 +1,43 @@ +package canonical + +import ( + "fmt" + + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +// TODO: Add the xatu.Event_* name(s) that route events to the canonical_beacon_block_execution_payload_bid table. +var canonicalBeaconBlockExecutionPayloadBidEventNames = []xatu.Event_Name{} + +func init() { + route, err := route.NewStaticRoute( + canonicalBeaconBlockExecutionPayloadBidTableName, + canonicalBeaconBlockExecutionPayloadBidEventNames, + func() route.ColumnarBatch { return newcanonicalBeaconBlockExecutionPayloadBidBatch() }, + ) + if err != nil { + route.RecordError(err) + + return + } + + if err := route.Register(route); err != nil { + route.RecordError(err) + } +} + +func (b *canonicalBeaconBlockExecutionPayloadBidBatch) FlattenTo( + event *xatu.DecoratedEvent, +) error { + // TODO: Implement this method to flatten the event into columnar batch columns. + // The generated .gen.go file contains the available column fields for this table. + // + // Typical structure: + // b.appendRuntime(event) + // b.appendMetadata(event) + // b.appendPayload(event) + // b.rows++ + // return nil + return fmt.Errorf("canonicalBeaconBlockExecutionPayloadBid: FlattenTo not implemented") +} diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid_test.go b/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid_test.go new file mode 100644 index 000000000..c71573412 --- /dev/null +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid_test.go @@ -0,0 +1,27 @@ +package canonical + +import ( + "testing" + + "github.com/ethpandaops/xatu/pkg/consumoor/route/testfixture" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +func TestSnapshot_canonical_beacon_block_execution_payload_bid(t *testing.T) { + if len(canonicalBeaconBlockExecutionPayloadBidEventNames) == 0 { + t.Skip("no event names registered for canonical_beacon_block_execution_payload_bid") + } + + testfixture.AssertSnapshot(t, newcanonicalBeaconBlockExecutionPayloadBidBatch(), &xatu.DecoratedEvent{ + Event: &xatu.Event{ + Name: canonicalBeaconBlockExecutionPayloadBidEventNames[0], + DateTime: testfixture.TS(), + Id: "snapshot-1", + }, + Meta: testfixture.BaseMeta(), + // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + }, 1, map[string]any{ + "meta_client_name": "test-client", + // TODO: Add payload-specific column assertions. + }) +} diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation.gen.go b/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation.gen.go new file mode 100644 index 000000000..24f96d19f --- /dev/null +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation.gen.go @@ -0,0 +1,270 @@ +// Code generated by chgo-rowgen; DO NOT EDIT. + +package canonical + +import ( + "net" + + "github.com/ClickHouse/ch-go/proto" + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +const canonicalBeaconBlockPayloadAttestationTableName route.TableName = "canonical_beacon_block_payload_attestation" + +type canonicalBeaconBlockPayloadAttestationBatch struct { + UpdatedDateTime proto.ColDateTime + Slot proto.ColUInt32 + SlotStartDateTime proto.ColDateTime + Epoch proto.ColUInt32 + EpochStartDateTime proto.ColDateTime + BlockRoot route.SafeColFixedStr + BlockVersion proto.ColStr + Position proto.ColUInt32 + BeaconBlockRoot route.SafeColFixedStr + PayloadPresent proto.ColBool + BlobDataAvailable proto.ColBool + AggregationBits proto.ColStr + AttestingValidatorCount proto.ColUInt32 + MetaClientName proto.ColStr + MetaClientID proto.ColStr + MetaClientVersion proto.ColStr + MetaClientImplementation proto.ColStr + MetaClientOS proto.ColStr + MetaClientIP *proto.ColNullable[proto.IPv6] + MetaClientGeoCity proto.ColStr + MetaClientGeoCountry proto.ColStr + MetaClientGeoCountryCode proto.ColStr + MetaClientGeoContinentCode proto.ColStr + MetaClientGeoLongitude *proto.ColNullable[float64] + MetaClientGeoLatitude *proto.ColNullable[float64] + MetaClientGeoAutonomousSystemNumber *proto.ColNullable[uint32] + MetaClientGeoAutonomousSystemOrganization *proto.ColNullable[string] + MetaNetworkID proto.ColInt32 + MetaNetworkName proto.ColStr + MetaConsensusVersion proto.ColStr + MetaConsensusVersionMajor proto.ColStr + MetaConsensusVersionMinor proto.ColStr + MetaConsensusVersionPatch proto.ColStr + MetaConsensusImplementation proto.ColStr + MetaLabels *proto.ColMap[string, string] + rows int +} + +func newcanonicalBeaconBlockPayloadAttestationBatch() *canonicalBeaconBlockPayloadAttestationBatch { + return &canonicalBeaconBlockPayloadAttestationBatch{ + BlockRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + BeaconBlockRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + MetaClientIP: new(proto.ColIPv6).Nullable(), + MetaClientGeoLongitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoLatitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoAutonomousSystemNumber: new(proto.ColUInt32).Nullable(), + MetaClientGeoAutonomousSystemOrganization: new(proto.ColStr).Nullable(), + MetaLabels: proto.NewMap[string, string](new(proto.ColStr), new(proto.ColStr)), + } +} + +func (b *canonicalBeaconBlockPayloadAttestationBatch) Rows() int { + return b.rows +} + +func (b *canonicalBeaconBlockPayloadAttestationBatch) appendMetadata(event *xatu.DecoratedEvent) { + if event == nil || event.GetMeta() == nil { + b.MetaClientName.Append("") + b.MetaClientID.Append("") + b.MetaClientVersion.Append("") + b.MetaClientImplementation.Append("") + b.MetaClientOS.Append("") + b.MetaClientIP.Append(proto.Nullable[proto.IPv6]{}) + b.MetaClientGeoCity.Append("") + b.MetaClientGeoCountry.Append("") + b.MetaClientGeoCountryCode.Append("") + b.MetaClientGeoContinentCode.Append("") + b.MetaClientGeoLongitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoLatitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.Nullable[uint32]{}) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.Nullable[string]{}) + b.MetaNetworkID.Append(0) + b.MetaNetworkName.Append("") + b.MetaConsensusVersion.Append("") + b.MetaConsensusVersionMajor.Append("") + b.MetaConsensusVersionMinor.Append("") + b.MetaConsensusVersionPatch.Append("") + b.MetaConsensusImplementation.Append("") + b.MetaLabels.Append(nil) + return + } + + b.MetaClientName.Append(event.GetMeta().GetClient().GetName()) + b.MetaClientID.Append(event.GetMeta().GetClient().GetId()) + b.MetaClientVersion.Append(event.GetMeta().GetClient().GetVersion()) + b.MetaClientImplementation.Append(event.GetMeta().GetClient().GetImplementation()) + b.MetaClientOS.Append(event.GetMeta().GetClient().GetOs()) + b.MetaClientIP.Append(proto.NewNullable[proto.IPv6](route.NormalizeIPToIPv6(event.GetMeta().GetServer().GetClient().GetIP()))) + b.MetaClientGeoCity.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCity()) + b.MetaClientGeoCountry.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountry()) + b.MetaClientGeoCountryCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountryCode()) + b.MetaClientGeoContinentCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetContinentCode()) + b.MetaClientGeoLongitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLongitude())) + b.MetaClientGeoLatitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLatitude())) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.NewNullable[uint32](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemNumber())) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.NewNullable[string](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemOrganization())) + b.MetaNetworkID.Append(int32(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetId())) + b.MetaNetworkName.Append(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetName()) + b.MetaConsensusVersion.Append(route.NormalizeConsensusVersion(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionMajor.Append(route.ConsensusVersionMajor(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionMinor.Append(route.ConsensusVersionMinor(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusVersionPatch.Append(route.ConsensusVersionPatch(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetVersion())) + b.MetaConsensusImplementation.Append(event.GetMeta().GetClient().GetEthereum().GetConsensus().GetImplementation()) + if labels := event.GetMeta().GetClient().GetLabels(); labels != nil { + b.MetaLabels.Append(labels) + } else { + b.MetaLabels.Append(map[string]string{}) + } +} + +func (b *canonicalBeaconBlockPayloadAttestationBatch) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &b.UpdatedDateTime}, + {Name: "slot", Data: &b.Slot}, + {Name: "slot_start_date_time", Data: &b.SlotStartDateTime}, + {Name: "epoch", Data: &b.Epoch}, + {Name: "epoch_start_date_time", Data: &b.EpochStartDateTime}, + {Name: "block_root", Data: &b.BlockRoot}, + {Name: "block_version", Data: &b.BlockVersion}, + {Name: "position", Data: &b.Position}, + {Name: "beacon_block_root", Data: &b.BeaconBlockRoot}, + {Name: "payload_present", Data: &b.PayloadPresent}, + {Name: "blob_data_available", Data: &b.BlobDataAvailable}, + {Name: "aggregation_bits", Data: &b.AggregationBits}, + {Name: "attesting_validator_count", Data: &b.AttestingValidatorCount}, + {Name: "meta_client_name", Data: &b.MetaClientName}, + {Name: "meta_client_id", Data: &b.MetaClientID}, + {Name: "meta_client_version", Data: &b.MetaClientVersion}, + {Name: "meta_client_implementation", Data: &b.MetaClientImplementation}, + {Name: "meta_client_os", Data: &b.MetaClientOS}, + {Name: "meta_client_ip", Data: b.MetaClientIP}, + {Name: "meta_client_geo_city", Data: &b.MetaClientGeoCity}, + {Name: "meta_client_geo_country", Data: &b.MetaClientGeoCountry}, + {Name: "meta_client_geo_country_code", Data: &b.MetaClientGeoCountryCode}, + {Name: "meta_client_geo_continent_code", Data: &b.MetaClientGeoContinentCode}, + {Name: "meta_client_geo_longitude", Data: b.MetaClientGeoLongitude}, + {Name: "meta_client_geo_latitude", Data: b.MetaClientGeoLatitude}, + {Name: "meta_client_geo_autonomous_system_number", Data: b.MetaClientGeoAutonomousSystemNumber}, + {Name: "meta_client_geo_autonomous_system_organization", Data: b.MetaClientGeoAutonomousSystemOrganization}, + {Name: "meta_network_id", Data: &b.MetaNetworkID}, + {Name: "meta_network_name", Data: &b.MetaNetworkName}, + {Name: "meta_consensus_version", Data: &b.MetaConsensusVersion}, + {Name: "meta_consensus_version_major", Data: &b.MetaConsensusVersionMajor}, + {Name: "meta_consensus_version_minor", Data: &b.MetaConsensusVersionMinor}, + {Name: "meta_consensus_version_patch", Data: &b.MetaConsensusVersionPatch}, + {Name: "meta_consensus_implementation", Data: &b.MetaConsensusImplementation}, + {Name: "meta_labels", Data: b.MetaLabels}, + } +} + +func (b *canonicalBeaconBlockPayloadAttestationBatch) Reset() { + b.UpdatedDateTime.Reset() + b.Slot.Reset() + b.SlotStartDateTime.Reset() + b.Epoch.Reset() + b.EpochStartDateTime.Reset() + b.BlockRoot.Reset() + b.BlockVersion.Reset() + b.Position.Reset() + b.BeaconBlockRoot.Reset() + b.PayloadPresent.Reset() + b.BlobDataAvailable.Reset() + b.AggregationBits.Reset() + b.AttestingValidatorCount.Reset() + b.MetaClientName.Reset() + b.MetaClientID.Reset() + b.MetaClientVersion.Reset() + b.MetaClientImplementation.Reset() + b.MetaClientOS.Reset() + b.MetaClientIP.Reset() + b.MetaClientGeoCity.Reset() + b.MetaClientGeoCountry.Reset() + b.MetaClientGeoCountryCode.Reset() + b.MetaClientGeoContinentCode.Reset() + b.MetaClientGeoLongitude.Reset() + b.MetaClientGeoLatitude.Reset() + b.MetaClientGeoAutonomousSystemNumber.Reset() + b.MetaClientGeoAutonomousSystemOrganization.Reset() + b.MetaNetworkID.Reset() + b.MetaNetworkName.Reset() + b.MetaConsensusVersion.Reset() + b.MetaConsensusVersionMajor.Reset() + b.MetaConsensusVersionMinor.Reset() + b.MetaConsensusVersionPatch.Reset() + b.MetaConsensusImplementation.Reset() + b.MetaLabels.Reset() + b.rows = 0 +} + +func (b *canonicalBeaconBlockPayloadAttestationBatch) Snapshot() []map[string]any { + n := b.rows + out := make([]map[string]any, n) + + for i := 0; i < n; i++ { + row := make(map[string]any, 35) + row["updated_date_time"] = b.UpdatedDateTime.Row(i).Unix() + row["slot"] = b.Slot.Row(i) + row["slot_start_date_time"] = b.SlotStartDateTime.Row(i).Unix() + row["epoch"] = b.Epoch.Row(i) + row["epoch_start_date_time"] = b.EpochStartDateTime.Row(i).Unix() + row["block_root"] = string(b.BlockRoot.Row(i)) + row["block_version"] = b.BlockVersion.Row(i) + row["position"] = b.Position.Row(i) + row["beacon_block_root"] = string(b.BeaconBlockRoot.Row(i)) + row["payload_present"] = b.PayloadPresent.Row(i) + row["blob_data_available"] = b.BlobDataAvailable.Row(i) + row["aggregation_bits"] = b.AggregationBits.Row(i) + row["attesting_validator_count"] = b.AttestingValidatorCount.Row(i) + row["meta_client_name"] = b.MetaClientName.Row(i) + row["meta_client_id"] = b.MetaClientID.Row(i) + row["meta_client_version"] = b.MetaClientVersion.Row(i) + row["meta_client_implementation"] = b.MetaClientImplementation.Row(i) + row["meta_client_os"] = b.MetaClientOS.Row(i) + if v := b.MetaClientIP.Row(i); v.Set { + row["meta_client_ip"] = net.IP(v.Value[:]).String() + } else { + row["meta_client_ip"] = nil + } + row["meta_client_geo_city"] = b.MetaClientGeoCity.Row(i) + row["meta_client_geo_country"] = b.MetaClientGeoCountry.Row(i) + row["meta_client_geo_country_code"] = b.MetaClientGeoCountryCode.Row(i) + row["meta_client_geo_continent_code"] = b.MetaClientGeoContinentCode.Row(i) + if v := b.MetaClientGeoLongitude.Row(i); v.Set { + row["meta_client_geo_longitude"] = v.Value + } else { + row["meta_client_geo_longitude"] = nil + } + if v := b.MetaClientGeoLatitude.Row(i); v.Set { + row["meta_client_geo_latitude"] = v.Value + } else { + row["meta_client_geo_latitude"] = nil + } + if v := b.MetaClientGeoAutonomousSystemNumber.Row(i); v.Set { + row["meta_client_geo_autonomous_system_number"] = v.Value + } else { + row["meta_client_geo_autonomous_system_number"] = nil + } + if v := b.MetaClientGeoAutonomousSystemOrganization.Row(i); v.Set { + row["meta_client_geo_autonomous_system_organization"] = v.Value + } else { + row["meta_client_geo_autonomous_system_organization"] = nil + } + row["meta_network_id"] = b.MetaNetworkID.Row(i) + row["meta_network_name"] = b.MetaNetworkName.Row(i) + row["meta_consensus_version"] = b.MetaConsensusVersion.Row(i) + row["meta_consensus_version_major"] = b.MetaConsensusVersionMajor.Row(i) + row["meta_consensus_version_minor"] = b.MetaConsensusVersionMinor.Row(i) + row["meta_consensus_version_patch"] = b.MetaConsensusVersionPatch.Row(i) + row["meta_consensus_implementation"] = b.MetaConsensusImplementation.Row(i) + row["meta_labels"] = b.MetaLabels.Row(i) + out[i] = row + } + + return out +} diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation.go b/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation.go new file mode 100644 index 000000000..6050cbcb3 --- /dev/null +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation.go @@ -0,0 +1,43 @@ +package canonical + +import ( + "fmt" + + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +// TODO: Add the xatu.Event_* name(s) that route events to the canonical_beacon_block_payload_attestation table. +var canonicalBeaconBlockPayloadAttestationEventNames = []xatu.Event_Name{} + +func init() { + route, err := route.NewStaticRoute( + canonicalBeaconBlockPayloadAttestationTableName, + canonicalBeaconBlockPayloadAttestationEventNames, + func() route.ColumnarBatch { return newcanonicalBeaconBlockPayloadAttestationBatch() }, + ) + if err != nil { + route.RecordError(err) + + return + } + + if err := route.Register(route); err != nil { + route.RecordError(err) + } +} + +func (b *canonicalBeaconBlockPayloadAttestationBatch) FlattenTo( + event *xatu.DecoratedEvent, +) error { + // TODO: Implement this method to flatten the event into columnar batch columns. + // The generated .gen.go file contains the available column fields for this table. + // + // Typical structure: + // b.appendRuntime(event) + // b.appendMetadata(event) + // b.appendPayload(event) + // b.rows++ + // return nil + return fmt.Errorf("canonicalBeaconBlockPayloadAttestation: FlattenTo not implemented") +} diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation_test.go b/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation_test.go new file mode 100644 index 000000000..7dd860251 --- /dev/null +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation_test.go @@ -0,0 +1,27 @@ +package canonical + +import ( + "testing" + + "github.com/ethpandaops/xatu/pkg/consumoor/route/testfixture" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +func TestSnapshot_canonical_beacon_block_payload_attestation(t *testing.T) { + if len(canonicalBeaconBlockPayloadAttestationEventNames) == 0 { + t.Skip("no event names registered for canonical_beacon_block_payload_attestation") + } + + testfixture.AssertSnapshot(t, newcanonicalBeaconBlockPayloadAttestationBatch(), &xatu.DecoratedEvent{ + Event: &xatu.Event{ + Name: canonicalBeaconBlockPayloadAttestationEventNames[0], + DateTime: testfixture.TS(), + Id: "snapshot-1", + }, + Meta: testfixture.BaseMeta(), + // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + }, 1, map[string]any{ + "meta_client_name": "test-client", + // TODO: Add payload-specific column assertions. + }) +} diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_data_column_sidecar.gen.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_data_column_sidecar.gen.go index c419a6714..3cdbc9511 100644 --- a/pkg/consumoor/route/libp2p/libp2p_gossipsub_data_column_sidecar.gen.go +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_data_column_sidecar.gen.go @@ -54,6 +54,8 @@ type libp2pGossipsubDataColumnSidecarBatch struct { MetaClientGeoAutonomousSystemOrganization *proto.ColNullable[string] MetaNetworkID proto.ColInt32 MetaNetworkName proto.ColStr + SidecarSlot *proto.ColNullable[uint32] + SidecarBeaconBlockRoot *proto.ColNullable[[]byte] rows int } @@ -68,6 +70,8 @@ func newlibp2pGossipsubDataColumnSidecarBatch() *libp2pGossipsubDataColumnSideca MetaClientGeoLatitude: new(proto.ColFloat64).Nullable(), MetaClientGeoAutonomousSystemNumber: new(proto.ColUInt32).Nullable(), MetaClientGeoAutonomousSystemOrganization: new(proto.ColStr).Nullable(), + SidecarSlot: new(proto.ColUInt32).Nullable(), + SidecarBeaconBlockRoot: route.NewNullableFixedStr(66), } } @@ -157,6 +161,8 @@ func (b *libp2pGossipsubDataColumnSidecarBatch) Input() proto.Input { {Name: "meta_client_geo_autonomous_system_organization", Data: b.MetaClientGeoAutonomousSystemOrganization}, {Name: "meta_network_id", Data: &b.MetaNetworkID}, {Name: "meta_network_name", Data: &b.MetaNetworkName}, + {Name: "sidecar_slot", Data: b.SidecarSlot}, + {Name: "sidecar_beacon_block_root", Data: b.SidecarBeaconBlockRoot}, } } @@ -202,6 +208,8 @@ func (b *libp2pGossipsubDataColumnSidecarBatch) Reset() { b.MetaClientGeoAutonomousSystemOrganization.Reset() b.MetaNetworkID.Reset() b.MetaNetworkName.Reset() + b.SidecarSlot.Reset() + b.SidecarBeaconBlockRoot.Reset() b.rows = 0 } @@ -210,7 +218,7 @@ func (b *libp2pGossipsubDataColumnSidecarBatch) Snapshot() []map[string]any { out := make([]map[string]any, n) for i := 0; i < n; i++ { - row := make(map[string]any, 41) + row := make(map[string]any, 43) row["updated_date_time"] = b.UpdatedDateTime.Row(i).Unix() row["version"] = b.Version.Row(i) row["event_date_time"] = b.EventDateTime.Row(i).UnixMilli() @@ -272,6 +280,16 @@ func (b *libp2pGossipsubDataColumnSidecarBatch) Snapshot() []map[string]any { } row["meta_network_id"] = b.MetaNetworkID.Row(i) row["meta_network_name"] = b.MetaNetworkName.Row(i) + if v := b.SidecarSlot.Row(i); v.Set { + row["sidecar_slot"] = v.Value + } else { + row["sidecar_slot"] = nil + } + if v := b.SidecarBeaconBlockRoot.Row(i); v.Set { + row["sidecar_beacon_block_root"] = string(v.Value) + } else { + row["sidecar_beacon_block_root"] = nil + } out[i] = row } diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid.gen.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid.gen.go new file mode 100644 index 000000000..28f063550 --- /dev/null +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid.gen.go @@ -0,0 +1,287 @@ +// Code generated by chgo-rowgen; DO NOT EDIT. + +package libp2p + +import ( + "net" + + "github.com/ClickHouse/ch-go/proto" + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +const libp2pGossipsubExecutionPayloadBidTableName route.TableName = "libp2p_gossipsub_execution_payload_bid" + +type libp2pGossipsubExecutionPayloadBidBatch struct { + UpdatedDateTime proto.ColDateTime + Version proto.ColUInt32 + EventDateTime proto.ColDateTime64 + Slot proto.ColUInt32 + SlotStartDateTime proto.ColDateTime + Epoch proto.ColUInt32 + EpochStartDateTime proto.ColDateTime + WallclockSlot proto.ColUInt32 + WallclockSlotStartDateTime proto.ColDateTime + WallclockEpoch proto.ColUInt32 + WallclockEpochStartDateTime proto.ColDateTime + PropagationSlotStartDiff proto.ColUInt32 + BuilderIndex proto.ColUInt64 + BlockHash route.SafeColFixedStr + ParentBlockHash route.SafeColFixedStr + Value proto.ColUInt64 + ExecutionPayment proto.ColUInt64 + FeeRecipient route.SafeColFixedStr + GasLimit proto.ColUInt64 + BlobKzgCommitmentCount proto.ColUInt32 + PeerIDUniqueKey proto.ColInt64 + MessageID proto.ColStr + MessageSize proto.ColUInt32 + TopicLayer proto.ColStr + TopicForkDigestValue proto.ColStr + TopicName proto.ColStr + TopicEncoding proto.ColStr + MetaClientName proto.ColStr + MetaClientID proto.ColStr + MetaClientVersion proto.ColStr + MetaClientImplementation proto.ColStr + MetaClientOS proto.ColStr + MetaClientIP *proto.ColNullable[proto.IPv6] + MetaClientGeoCity proto.ColStr + MetaClientGeoCountry proto.ColStr + MetaClientGeoCountryCode proto.ColStr + MetaClientGeoContinentCode proto.ColStr + MetaClientGeoLongitude *proto.ColNullable[float64] + MetaClientGeoLatitude *proto.ColNullable[float64] + MetaClientGeoAutonomousSystemNumber *proto.ColNullable[uint32] + MetaClientGeoAutonomousSystemOrganization *proto.ColNullable[string] + MetaNetworkID proto.ColInt32 + MetaNetworkName proto.ColStr + rows int +} + +func newlibp2pGossipsubExecutionPayloadBidBatch() *libp2pGossipsubExecutionPayloadBidBatch { + return &libp2pGossipsubExecutionPayloadBidBatch{ + EventDateTime: func() proto.ColDateTime64 { var c proto.ColDateTime64; c.WithPrecision(proto.Precision(3)); return c }(), + BlockHash: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + ParentBlockHash: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + FeeRecipient: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(42); return c }(), + MetaClientIP: new(proto.ColIPv6).Nullable(), + MetaClientGeoLongitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoLatitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoAutonomousSystemNumber: new(proto.ColUInt32).Nullable(), + MetaClientGeoAutonomousSystemOrganization: new(proto.ColStr).Nullable(), + } +} + +func (b *libp2pGossipsubExecutionPayloadBidBatch) Rows() int { + return b.rows +} + +func (b *libp2pGossipsubExecutionPayloadBidBatch) appendMetadata(event *xatu.DecoratedEvent) { + if event == nil || event.GetMeta() == nil { + b.MetaClientName.Append("") + b.MetaClientID.Append("") + b.MetaClientVersion.Append("") + b.MetaClientImplementation.Append("") + b.MetaClientOS.Append("") + b.MetaClientIP.Append(proto.Nullable[proto.IPv6]{}) + b.MetaClientGeoCity.Append("") + b.MetaClientGeoCountry.Append("") + b.MetaClientGeoCountryCode.Append("") + b.MetaClientGeoContinentCode.Append("") + b.MetaClientGeoLongitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoLatitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.Nullable[uint32]{}) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.Nullable[string]{}) + b.MetaNetworkID.Append(0) + b.MetaNetworkName.Append("") + return + } + + b.MetaClientName.Append(event.GetMeta().GetClient().GetName()) + b.MetaClientID.Append(event.GetMeta().GetClient().GetId()) + b.MetaClientVersion.Append(event.GetMeta().GetClient().GetVersion()) + b.MetaClientImplementation.Append(event.GetMeta().GetClient().GetImplementation()) + b.MetaClientOS.Append(event.GetMeta().GetClient().GetOs()) + b.MetaClientIP.Append(proto.NewNullable[proto.IPv6](route.NormalizeIPToIPv6(event.GetMeta().GetServer().GetClient().GetIP()))) + b.MetaClientGeoCity.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCity()) + b.MetaClientGeoCountry.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountry()) + b.MetaClientGeoCountryCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountryCode()) + b.MetaClientGeoContinentCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetContinentCode()) + b.MetaClientGeoLongitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLongitude())) + b.MetaClientGeoLatitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLatitude())) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.NewNullable[uint32](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemNumber())) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.NewNullable[string](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemOrganization())) + b.MetaNetworkID.Append(int32(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetId())) + b.MetaNetworkName.Append(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetName()) +} + +func (b *libp2pGossipsubExecutionPayloadBidBatch) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &b.UpdatedDateTime}, + {Name: "version", Data: &b.Version}, + {Name: "event_date_time", Data: &b.EventDateTime}, + {Name: "slot", Data: &b.Slot}, + {Name: "slot_start_date_time", Data: &b.SlotStartDateTime}, + {Name: "epoch", Data: &b.Epoch}, + {Name: "epoch_start_date_time", Data: &b.EpochStartDateTime}, + {Name: "wallclock_slot", Data: &b.WallclockSlot}, + {Name: "wallclock_slot_start_date_time", Data: &b.WallclockSlotStartDateTime}, + {Name: "wallclock_epoch", Data: &b.WallclockEpoch}, + {Name: "wallclock_epoch_start_date_time", Data: &b.WallclockEpochStartDateTime}, + {Name: "propagation_slot_start_diff", Data: &b.PropagationSlotStartDiff}, + {Name: "builder_index", Data: &b.BuilderIndex}, + {Name: "block_hash", Data: &b.BlockHash}, + {Name: "parent_block_hash", Data: &b.ParentBlockHash}, + {Name: "value", Data: &b.Value}, + {Name: "execution_payment", Data: &b.ExecutionPayment}, + {Name: "fee_recipient", Data: &b.FeeRecipient}, + {Name: "gas_limit", Data: &b.GasLimit}, + {Name: "blob_kzg_commitment_count", Data: &b.BlobKzgCommitmentCount}, + {Name: "peer_id_unique_key", Data: &b.PeerIDUniqueKey}, + {Name: "message_id", Data: &b.MessageID}, + {Name: "message_size", Data: &b.MessageSize}, + {Name: "topic_layer", Data: &b.TopicLayer}, + {Name: "topic_fork_digest_value", Data: &b.TopicForkDigestValue}, + {Name: "topic_name", Data: &b.TopicName}, + {Name: "topic_encoding", Data: &b.TopicEncoding}, + {Name: "meta_client_name", Data: &b.MetaClientName}, + {Name: "meta_client_id", Data: &b.MetaClientID}, + {Name: "meta_client_version", Data: &b.MetaClientVersion}, + {Name: "meta_client_implementation", Data: &b.MetaClientImplementation}, + {Name: "meta_client_os", Data: &b.MetaClientOS}, + {Name: "meta_client_ip", Data: b.MetaClientIP}, + {Name: "meta_client_geo_city", Data: &b.MetaClientGeoCity}, + {Name: "meta_client_geo_country", Data: &b.MetaClientGeoCountry}, + {Name: "meta_client_geo_country_code", Data: &b.MetaClientGeoCountryCode}, + {Name: "meta_client_geo_continent_code", Data: &b.MetaClientGeoContinentCode}, + {Name: "meta_client_geo_longitude", Data: b.MetaClientGeoLongitude}, + {Name: "meta_client_geo_latitude", Data: b.MetaClientGeoLatitude}, + {Name: "meta_client_geo_autonomous_system_number", Data: b.MetaClientGeoAutonomousSystemNumber}, + {Name: "meta_client_geo_autonomous_system_organization", Data: b.MetaClientGeoAutonomousSystemOrganization}, + {Name: "meta_network_id", Data: &b.MetaNetworkID}, + {Name: "meta_network_name", Data: &b.MetaNetworkName}, + } +} + +func (b *libp2pGossipsubExecutionPayloadBidBatch) Reset() { + b.UpdatedDateTime.Reset() + b.Version.Reset() + b.EventDateTime.Reset() + b.Slot.Reset() + b.SlotStartDateTime.Reset() + b.Epoch.Reset() + b.EpochStartDateTime.Reset() + b.WallclockSlot.Reset() + b.WallclockSlotStartDateTime.Reset() + b.WallclockEpoch.Reset() + b.WallclockEpochStartDateTime.Reset() + b.PropagationSlotStartDiff.Reset() + b.BuilderIndex.Reset() + b.BlockHash.Reset() + b.ParentBlockHash.Reset() + b.Value.Reset() + b.ExecutionPayment.Reset() + b.FeeRecipient.Reset() + b.GasLimit.Reset() + b.BlobKzgCommitmentCount.Reset() + b.PeerIDUniqueKey.Reset() + b.MessageID.Reset() + b.MessageSize.Reset() + b.TopicLayer.Reset() + b.TopicForkDigestValue.Reset() + b.TopicName.Reset() + b.TopicEncoding.Reset() + b.MetaClientName.Reset() + b.MetaClientID.Reset() + b.MetaClientVersion.Reset() + b.MetaClientImplementation.Reset() + b.MetaClientOS.Reset() + b.MetaClientIP.Reset() + b.MetaClientGeoCity.Reset() + b.MetaClientGeoCountry.Reset() + b.MetaClientGeoCountryCode.Reset() + b.MetaClientGeoContinentCode.Reset() + b.MetaClientGeoLongitude.Reset() + b.MetaClientGeoLatitude.Reset() + b.MetaClientGeoAutonomousSystemNumber.Reset() + b.MetaClientGeoAutonomousSystemOrganization.Reset() + b.MetaNetworkID.Reset() + b.MetaNetworkName.Reset() + b.rows = 0 +} + +func (b *libp2pGossipsubExecutionPayloadBidBatch) Snapshot() []map[string]any { + n := b.rows + out := make([]map[string]any, n) + + for i := 0; i < n; i++ { + row := make(map[string]any, 43) + row["updated_date_time"] = b.UpdatedDateTime.Row(i).Unix() + row["version"] = b.Version.Row(i) + row["event_date_time"] = b.EventDateTime.Row(i).UnixMilli() + row["slot"] = b.Slot.Row(i) + row["slot_start_date_time"] = b.SlotStartDateTime.Row(i).Unix() + row["epoch"] = b.Epoch.Row(i) + row["epoch_start_date_time"] = b.EpochStartDateTime.Row(i).Unix() + row["wallclock_slot"] = b.WallclockSlot.Row(i) + row["wallclock_slot_start_date_time"] = b.WallclockSlotStartDateTime.Row(i).Unix() + row["wallclock_epoch"] = b.WallclockEpoch.Row(i) + row["wallclock_epoch_start_date_time"] = b.WallclockEpochStartDateTime.Row(i).Unix() + row["propagation_slot_start_diff"] = b.PropagationSlotStartDiff.Row(i) + row["builder_index"] = b.BuilderIndex.Row(i) + row["block_hash"] = string(b.BlockHash.Row(i)) + row["parent_block_hash"] = string(b.ParentBlockHash.Row(i)) + row["value"] = b.Value.Row(i) + row["execution_payment"] = b.ExecutionPayment.Row(i) + row["fee_recipient"] = string(b.FeeRecipient.Row(i)) + row["gas_limit"] = b.GasLimit.Row(i) + row["blob_kzg_commitment_count"] = b.BlobKzgCommitmentCount.Row(i) + row["peer_id_unique_key"] = b.PeerIDUniqueKey.Row(i) + row["message_id"] = b.MessageID.Row(i) + row["message_size"] = b.MessageSize.Row(i) + row["topic_layer"] = b.TopicLayer.Row(i) + row["topic_fork_digest_value"] = b.TopicForkDigestValue.Row(i) + row["topic_name"] = b.TopicName.Row(i) + row["topic_encoding"] = b.TopicEncoding.Row(i) + row["meta_client_name"] = b.MetaClientName.Row(i) + row["meta_client_id"] = b.MetaClientID.Row(i) + row["meta_client_version"] = b.MetaClientVersion.Row(i) + row["meta_client_implementation"] = b.MetaClientImplementation.Row(i) + row["meta_client_os"] = b.MetaClientOS.Row(i) + if v := b.MetaClientIP.Row(i); v.Set { + row["meta_client_ip"] = net.IP(v.Value[:]).String() + } else { + row["meta_client_ip"] = nil + } + row["meta_client_geo_city"] = b.MetaClientGeoCity.Row(i) + row["meta_client_geo_country"] = b.MetaClientGeoCountry.Row(i) + row["meta_client_geo_country_code"] = b.MetaClientGeoCountryCode.Row(i) + row["meta_client_geo_continent_code"] = b.MetaClientGeoContinentCode.Row(i) + if v := b.MetaClientGeoLongitude.Row(i); v.Set { + row["meta_client_geo_longitude"] = v.Value + } else { + row["meta_client_geo_longitude"] = nil + } + if v := b.MetaClientGeoLatitude.Row(i); v.Set { + row["meta_client_geo_latitude"] = v.Value + } else { + row["meta_client_geo_latitude"] = nil + } + if v := b.MetaClientGeoAutonomousSystemNumber.Row(i); v.Set { + row["meta_client_geo_autonomous_system_number"] = v.Value + } else { + row["meta_client_geo_autonomous_system_number"] = nil + } + if v := b.MetaClientGeoAutonomousSystemOrganization.Row(i); v.Set { + row["meta_client_geo_autonomous_system_organization"] = v.Value + } else { + row["meta_client_geo_autonomous_system_organization"] = nil + } + row["meta_network_id"] = b.MetaNetworkID.Row(i) + row["meta_network_name"] = b.MetaNetworkName.Row(i) + out[i] = row + } + + return out +} diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid.go new file mode 100644 index 000000000..7fbde4c97 --- /dev/null +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid.go @@ -0,0 +1,43 @@ +package libp2p + +import ( + "fmt" + + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +// TODO: Add the xatu.Event_* name(s) that route events to the libp2p_gossipsub_execution_payload_bid table. +var libp2pGossipsubExecutionPayloadBidEventNames = []xatu.Event_Name{} + +func init() { + route, err := route.NewStaticRoute( + libp2pGossipsubExecutionPayloadBidTableName, + libp2pGossipsubExecutionPayloadBidEventNames, + func() route.ColumnarBatch { return newlibp2pGossipsubExecutionPayloadBidBatch() }, + ) + if err != nil { + route.RecordError(err) + + return + } + + if err := route.Register(route); err != nil { + route.RecordError(err) + } +} + +func (b *libp2pGossipsubExecutionPayloadBidBatch) FlattenTo( + event *xatu.DecoratedEvent, +) error { + // TODO: Implement this method to flatten the event into columnar batch columns. + // The generated .gen.go file contains the available column fields for this table. + // + // Typical structure: + // b.appendRuntime(event) + // b.appendMetadata(event) + // b.appendPayload(event) + // b.rows++ + // return nil + return fmt.Errorf("libp2pGossipsubExecutionPayloadBid: FlattenTo not implemented") +} diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid_test.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid_test.go new file mode 100644 index 000000000..b40c9605e --- /dev/null +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid_test.go @@ -0,0 +1,27 @@ +package libp2p + +import ( + "testing" + + "github.com/ethpandaops/xatu/pkg/consumoor/route/testfixture" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +func TestSnapshot_libp2p_gossipsub_execution_payload_bid(t *testing.T) { + if len(libp2pGossipsubExecutionPayloadBidEventNames) == 0 { + t.Skip("no event names registered for libp2p_gossipsub_execution_payload_bid") + } + + testfixture.AssertSnapshot(t, newlibp2pGossipsubExecutionPayloadBidBatch(), &xatu.DecoratedEvent{ + Event: &xatu.Event{ + Name: libp2pGossipsubExecutionPayloadBidEventNames[0], + DateTime: testfixture.TS(), + Id: "snapshot-1", + }, + Meta: testfixture.BaseMeta(), + // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + }, 1, map[string]any{ + "meta_client_name": "test-client", + // TODO: Add payload-specific column assertions. + }) +} diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope.gen.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope.gen.go new file mode 100644 index 000000000..c9d9defb5 --- /dev/null +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope.gen.go @@ -0,0 +1,266 @@ +// Code generated by chgo-rowgen; DO NOT EDIT. + +package libp2p + +import ( + "net" + + "github.com/ClickHouse/ch-go/proto" + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +const libp2pGossipsubExecutionPayloadEnvelopeTableName route.TableName = "libp2p_gossipsub_execution_payload_envelope" + +type libp2pGossipsubExecutionPayloadEnvelopeBatch struct { + UpdatedDateTime proto.ColDateTime + Version proto.ColUInt32 + EventDateTime proto.ColDateTime64 + Slot proto.ColUInt32 + SlotStartDateTime proto.ColDateTime + Epoch proto.ColUInt32 + EpochStartDateTime proto.ColDateTime + WallclockSlot proto.ColUInt32 + WallclockSlotStartDateTime proto.ColDateTime + WallclockEpoch proto.ColUInt32 + WallclockEpochStartDateTime proto.ColDateTime + PropagationSlotStartDiff proto.ColUInt32 + BlockRoot route.SafeColFixedStr + BuilderIndex proto.ColUInt64 + BlockHash route.SafeColFixedStr + PeerIDUniqueKey proto.ColInt64 + MessageID proto.ColStr + MessageSize proto.ColUInt32 + TopicLayer proto.ColStr + TopicForkDigestValue proto.ColStr + TopicName proto.ColStr + TopicEncoding proto.ColStr + MetaClientName proto.ColStr + MetaClientID proto.ColStr + MetaClientVersion proto.ColStr + MetaClientImplementation proto.ColStr + MetaClientOS proto.ColStr + MetaClientIP *proto.ColNullable[proto.IPv6] + MetaClientGeoCity proto.ColStr + MetaClientGeoCountry proto.ColStr + MetaClientGeoCountryCode proto.ColStr + MetaClientGeoContinentCode proto.ColStr + MetaClientGeoLongitude *proto.ColNullable[float64] + MetaClientGeoLatitude *proto.ColNullable[float64] + MetaClientGeoAutonomousSystemNumber *proto.ColNullable[uint32] + MetaClientGeoAutonomousSystemOrganization *proto.ColNullable[string] + MetaNetworkID proto.ColInt32 + MetaNetworkName proto.ColStr + rows int +} + +func newlibp2pGossipsubExecutionPayloadEnvelopeBatch() *libp2pGossipsubExecutionPayloadEnvelopeBatch { + return &libp2pGossipsubExecutionPayloadEnvelopeBatch{ + EventDateTime: func() proto.ColDateTime64 { var c proto.ColDateTime64; c.WithPrecision(proto.Precision(3)); return c }(), + BlockRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + BlockHash: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + MetaClientIP: new(proto.ColIPv6).Nullable(), + MetaClientGeoLongitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoLatitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoAutonomousSystemNumber: new(proto.ColUInt32).Nullable(), + MetaClientGeoAutonomousSystemOrganization: new(proto.ColStr).Nullable(), + } +} + +func (b *libp2pGossipsubExecutionPayloadEnvelopeBatch) Rows() int { + return b.rows +} + +func (b *libp2pGossipsubExecutionPayloadEnvelopeBatch) appendMetadata(event *xatu.DecoratedEvent) { + if event == nil || event.GetMeta() == nil { + b.MetaClientName.Append("") + b.MetaClientID.Append("") + b.MetaClientVersion.Append("") + b.MetaClientImplementation.Append("") + b.MetaClientOS.Append("") + b.MetaClientIP.Append(proto.Nullable[proto.IPv6]{}) + b.MetaClientGeoCity.Append("") + b.MetaClientGeoCountry.Append("") + b.MetaClientGeoCountryCode.Append("") + b.MetaClientGeoContinentCode.Append("") + b.MetaClientGeoLongitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoLatitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.Nullable[uint32]{}) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.Nullable[string]{}) + b.MetaNetworkID.Append(0) + b.MetaNetworkName.Append("") + return + } + + b.MetaClientName.Append(event.GetMeta().GetClient().GetName()) + b.MetaClientID.Append(event.GetMeta().GetClient().GetId()) + b.MetaClientVersion.Append(event.GetMeta().GetClient().GetVersion()) + b.MetaClientImplementation.Append(event.GetMeta().GetClient().GetImplementation()) + b.MetaClientOS.Append(event.GetMeta().GetClient().GetOs()) + b.MetaClientIP.Append(proto.NewNullable[proto.IPv6](route.NormalizeIPToIPv6(event.GetMeta().GetServer().GetClient().GetIP()))) + b.MetaClientGeoCity.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCity()) + b.MetaClientGeoCountry.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountry()) + b.MetaClientGeoCountryCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountryCode()) + b.MetaClientGeoContinentCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetContinentCode()) + b.MetaClientGeoLongitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLongitude())) + b.MetaClientGeoLatitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLatitude())) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.NewNullable[uint32](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemNumber())) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.NewNullable[string](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemOrganization())) + b.MetaNetworkID.Append(int32(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetId())) + b.MetaNetworkName.Append(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetName()) +} + +func (b *libp2pGossipsubExecutionPayloadEnvelopeBatch) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &b.UpdatedDateTime}, + {Name: "version", Data: &b.Version}, + {Name: "event_date_time", Data: &b.EventDateTime}, + {Name: "slot", Data: &b.Slot}, + {Name: "slot_start_date_time", Data: &b.SlotStartDateTime}, + {Name: "epoch", Data: &b.Epoch}, + {Name: "epoch_start_date_time", Data: &b.EpochStartDateTime}, + {Name: "wallclock_slot", Data: &b.WallclockSlot}, + {Name: "wallclock_slot_start_date_time", Data: &b.WallclockSlotStartDateTime}, + {Name: "wallclock_epoch", Data: &b.WallclockEpoch}, + {Name: "wallclock_epoch_start_date_time", Data: &b.WallclockEpochStartDateTime}, + {Name: "propagation_slot_start_diff", Data: &b.PropagationSlotStartDiff}, + {Name: "block_root", Data: &b.BlockRoot}, + {Name: "builder_index", Data: &b.BuilderIndex}, + {Name: "block_hash", Data: &b.BlockHash}, + {Name: "peer_id_unique_key", Data: &b.PeerIDUniqueKey}, + {Name: "message_id", Data: &b.MessageID}, + {Name: "message_size", Data: &b.MessageSize}, + {Name: "topic_layer", Data: &b.TopicLayer}, + {Name: "topic_fork_digest_value", Data: &b.TopicForkDigestValue}, + {Name: "topic_name", Data: &b.TopicName}, + {Name: "topic_encoding", Data: &b.TopicEncoding}, + {Name: "meta_client_name", Data: &b.MetaClientName}, + {Name: "meta_client_id", Data: &b.MetaClientID}, + {Name: "meta_client_version", Data: &b.MetaClientVersion}, + {Name: "meta_client_implementation", Data: &b.MetaClientImplementation}, + {Name: "meta_client_os", Data: &b.MetaClientOS}, + {Name: "meta_client_ip", Data: b.MetaClientIP}, + {Name: "meta_client_geo_city", Data: &b.MetaClientGeoCity}, + {Name: "meta_client_geo_country", Data: &b.MetaClientGeoCountry}, + {Name: "meta_client_geo_country_code", Data: &b.MetaClientGeoCountryCode}, + {Name: "meta_client_geo_continent_code", Data: &b.MetaClientGeoContinentCode}, + {Name: "meta_client_geo_longitude", Data: b.MetaClientGeoLongitude}, + {Name: "meta_client_geo_latitude", Data: b.MetaClientGeoLatitude}, + {Name: "meta_client_geo_autonomous_system_number", Data: b.MetaClientGeoAutonomousSystemNumber}, + {Name: "meta_client_geo_autonomous_system_organization", Data: b.MetaClientGeoAutonomousSystemOrganization}, + {Name: "meta_network_id", Data: &b.MetaNetworkID}, + {Name: "meta_network_name", Data: &b.MetaNetworkName}, + } +} + +func (b *libp2pGossipsubExecutionPayloadEnvelopeBatch) Reset() { + b.UpdatedDateTime.Reset() + b.Version.Reset() + b.EventDateTime.Reset() + b.Slot.Reset() + b.SlotStartDateTime.Reset() + b.Epoch.Reset() + b.EpochStartDateTime.Reset() + b.WallclockSlot.Reset() + b.WallclockSlotStartDateTime.Reset() + b.WallclockEpoch.Reset() + b.WallclockEpochStartDateTime.Reset() + b.PropagationSlotStartDiff.Reset() + b.BlockRoot.Reset() + b.BuilderIndex.Reset() + b.BlockHash.Reset() + b.PeerIDUniqueKey.Reset() + b.MessageID.Reset() + b.MessageSize.Reset() + b.TopicLayer.Reset() + b.TopicForkDigestValue.Reset() + b.TopicName.Reset() + b.TopicEncoding.Reset() + b.MetaClientName.Reset() + b.MetaClientID.Reset() + b.MetaClientVersion.Reset() + b.MetaClientImplementation.Reset() + b.MetaClientOS.Reset() + b.MetaClientIP.Reset() + b.MetaClientGeoCity.Reset() + b.MetaClientGeoCountry.Reset() + b.MetaClientGeoCountryCode.Reset() + b.MetaClientGeoContinentCode.Reset() + b.MetaClientGeoLongitude.Reset() + b.MetaClientGeoLatitude.Reset() + b.MetaClientGeoAutonomousSystemNumber.Reset() + b.MetaClientGeoAutonomousSystemOrganization.Reset() + b.MetaNetworkID.Reset() + b.MetaNetworkName.Reset() + b.rows = 0 +} + +func (b *libp2pGossipsubExecutionPayloadEnvelopeBatch) Snapshot() []map[string]any { + n := b.rows + out := make([]map[string]any, n) + + for i := 0; i < n; i++ { + row := make(map[string]any, 38) + row["updated_date_time"] = b.UpdatedDateTime.Row(i).Unix() + row["version"] = b.Version.Row(i) + row["event_date_time"] = b.EventDateTime.Row(i).UnixMilli() + row["slot"] = b.Slot.Row(i) + row["slot_start_date_time"] = b.SlotStartDateTime.Row(i).Unix() + row["epoch"] = b.Epoch.Row(i) + row["epoch_start_date_time"] = b.EpochStartDateTime.Row(i).Unix() + row["wallclock_slot"] = b.WallclockSlot.Row(i) + row["wallclock_slot_start_date_time"] = b.WallclockSlotStartDateTime.Row(i).Unix() + row["wallclock_epoch"] = b.WallclockEpoch.Row(i) + row["wallclock_epoch_start_date_time"] = b.WallclockEpochStartDateTime.Row(i).Unix() + row["propagation_slot_start_diff"] = b.PropagationSlotStartDiff.Row(i) + row["block_root"] = string(b.BlockRoot.Row(i)) + row["builder_index"] = b.BuilderIndex.Row(i) + row["block_hash"] = string(b.BlockHash.Row(i)) + row["peer_id_unique_key"] = b.PeerIDUniqueKey.Row(i) + row["message_id"] = b.MessageID.Row(i) + row["message_size"] = b.MessageSize.Row(i) + row["topic_layer"] = b.TopicLayer.Row(i) + row["topic_fork_digest_value"] = b.TopicForkDigestValue.Row(i) + row["topic_name"] = b.TopicName.Row(i) + row["topic_encoding"] = b.TopicEncoding.Row(i) + row["meta_client_name"] = b.MetaClientName.Row(i) + row["meta_client_id"] = b.MetaClientID.Row(i) + row["meta_client_version"] = b.MetaClientVersion.Row(i) + row["meta_client_implementation"] = b.MetaClientImplementation.Row(i) + row["meta_client_os"] = b.MetaClientOS.Row(i) + if v := b.MetaClientIP.Row(i); v.Set { + row["meta_client_ip"] = net.IP(v.Value[:]).String() + } else { + row["meta_client_ip"] = nil + } + row["meta_client_geo_city"] = b.MetaClientGeoCity.Row(i) + row["meta_client_geo_country"] = b.MetaClientGeoCountry.Row(i) + row["meta_client_geo_country_code"] = b.MetaClientGeoCountryCode.Row(i) + row["meta_client_geo_continent_code"] = b.MetaClientGeoContinentCode.Row(i) + if v := b.MetaClientGeoLongitude.Row(i); v.Set { + row["meta_client_geo_longitude"] = v.Value + } else { + row["meta_client_geo_longitude"] = nil + } + if v := b.MetaClientGeoLatitude.Row(i); v.Set { + row["meta_client_geo_latitude"] = v.Value + } else { + row["meta_client_geo_latitude"] = nil + } + if v := b.MetaClientGeoAutonomousSystemNumber.Row(i); v.Set { + row["meta_client_geo_autonomous_system_number"] = v.Value + } else { + row["meta_client_geo_autonomous_system_number"] = nil + } + if v := b.MetaClientGeoAutonomousSystemOrganization.Row(i); v.Set { + row["meta_client_geo_autonomous_system_organization"] = v.Value + } else { + row["meta_client_geo_autonomous_system_organization"] = nil + } + row["meta_network_id"] = b.MetaNetworkID.Row(i) + row["meta_network_name"] = b.MetaNetworkName.Row(i) + out[i] = row + } + + return out +} diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope.go new file mode 100644 index 000000000..55df55476 --- /dev/null +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope.go @@ -0,0 +1,43 @@ +package libp2p + +import ( + "fmt" + + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +// TODO: Add the xatu.Event_* name(s) that route events to the libp2p_gossipsub_execution_payload_envelope table. +var libp2pGossipsubExecutionPayloadEnvelopeEventNames = []xatu.Event_Name{} + +func init() { + route, err := route.NewStaticRoute( + libp2pGossipsubExecutionPayloadEnvelopeTableName, + libp2pGossipsubExecutionPayloadEnvelopeEventNames, + func() route.ColumnarBatch { return newlibp2pGossipsubExecutionPayloadEnvelopeBatch() }, + ) + if err != nil { + route.RecordError(err) + + return + } + + if err := route.Register(route); err != nil { + route.RecordError(err) + } +} + +func (b *libp2pGossipsubExecutionPayloadEnvelopeBatch) FlattenTo( + event *xatu.DecoratedEvent, +) error { + // TODO: Implement this method to flatten the event into columnar batch columns. + // The generated .gen.go file contains the available column fields for this table. + // + // Typical structure: + // b.appendRuntime(event) + // b.appendMetadata(event) + // b.appendPayload(event) + // b.rows++ + // return nil + return fmt.Errorf("libp2pGossipsubExecutionPayloadEnvelope: FlattenTo not implemented") +} diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope_test.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope_test.go new file mode 100644 index 000000000..e21fee106 --- /dev/null +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope_test.go @@ -0,0 +1,27 @@ +package libp2p + +import ( + "testing" + + "github.com/ethpandaops/xatu/pkg/consumoor/route/testfixture" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +func TestSnapshot_libp2p_gossipsub_execution_payload_envelope(t *testing.T) { + if len(libp2pGossipsubExecutionPayloadEnvelopeEventNames) == 0 { + t.Skip("no event names registered for libp2p_gossipsub_execution_payload_envelope") + } + + testfixture.AssertSnapshot(t, newlibp2pGossipsubExecutionPayloadEnvelopeBatch(), &xatu.DecoratedEvent{ + Event: &xatu.Event{ + Name: libp2pGossipsubExecutionPayloadEnvelopeEventNames[0], + DateTime: testfixture.TS(), + Id: "snapshot-1", + }, + Meta: testfixture.BaseMeta(), + // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + }, 1, map[string]any{ + "meta_client_name": "test-client", + // TODO: Add payload-specific column assertions. + }) +} diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message.gen.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message.gen.go new file mode 100644 index 000000000..628737ee8 --- /dev/null +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message.gen.go @@ -0,0 +1,269 @@ +// Code generated by chgo-rowgen; DO NOT EDIT. + +package libp2p + +import ( + "net" + + "github.com/ClickHouse/ch-go/proto" + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +const libp2pGossipsubPayloadAttestationMessageTableName route.TableName = "libp2p_gossipsub_payload_attestation_message" + +type libp2pGossipsubPayloadAttestationMessageBatch struct { + UpdatedDateTime proto.ColDateTime + Version proto.ColUInt32 + EventDateTime proto.ColDateTime64 + Slot proto.ColUInt32 + SlotStartDateTime proto.ColDateTime + Epoch proto.ColUInt32 + EpochStartDateTime proto.ColDateTime + WallclockSlot proto.ColUInt32 + WallclockSlotStartDateTime proto.ColDateTime + WallclockEpoch proto.ColUInt32 + WallclockEpochStartDateTime proto.ColDateTime + PropagationSlotStartDiff proto.ColUInt32 + ValidatorIndex proto.ColUInt32 + BeaconBlockRoot route.SafeColFixedStr + PayloadPresent proto.ColBool + BlobDataAvailable proto.ColBool + PeerIDUniqueKey proto.ColInt64 + MessageID proto.ColStr + MessageSize proto.ColUInt32 + TopicLayer proto.ColStr + TopicForkDigestValue proto.ColStr + TopicName proto.ColStr + TopicEncoding proto.ColStr + MetaClientName proto.ColStr + MetaClientID proto.ColStr + MetaClientVersion proto.ColStr + MetaClientImplementation proto.ColStr + MetaClientOS proto.ColStr + MetaClientIP *proto.ColNullable[proto.IPv6] + MetaClientGeoCity proto.ColStr + MetaClientGeoCountry proto.ColStr + MetaClientGeoCountryCode proto.ColStr + MetaClientGeoContinentCode proto.ColStr + MetaClientGeoLongitude *proto.ColNullable[float64] + MetaClientGeoLatitude *proto.ColNullable[float64] + MetaClientGeoAutonomousSystemNumber *proto.ColNullable[uint32] + MetaClientGeoAutonomousSystemOrganization *proto.ColNullable[string] + MetaNetworkID proto.ColInt32 + MetaNetworkName proto.ColStr + rows int +} + +func newlibp2pGossipsubPayloadAttestationMessageBatch() *libp2pGossipsubPayloadAttestationMessageBatch { + return &libp2pGossipsubPayloadAttestationMessageBatch{ + EventDateTime: func() proto.ColDateTime64 { var c proto.ColDateTime64; c.WithPrecision(proto.Precision(3)); return c }(), + BeaconBlockRoot: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(66); return c }(), + MetaClientIP: new(proto.ColIPv6).Nullable(), + MetaClientGeoLongitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoLatitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoAutonomousSystemNumber: new(proto.ColUInt32).Nullable(), + MetaClientGeoAutonomousSystemOrganization: new(proto.ColStr).Nullable(), + } +} + +func (b *libp2pGossipsubPayloadAttestationMessageBatch) Rows() int { + return b.rows +} + +func (b *libp2pGossipsubPayloadAttestationMessageBatch) appendMetadata(event *xatu.DecoratedEvent) { + if event == nil || event.GetMeta() == nil { + b.MetaClientName.Append("") + b.MetaClientID.Append("") + b.MetaClientVersion.Append("") + b.MetaClientImplementation.Append("") + b.MetaClientOS.Append("") + b.MetaClientIP.Append(proto.Nullable[proto.IPv6]{}) + b.MetaClientGeoCity.Append("") + b.MetaClientGeoCountry.Append("") + b.MetaClientGeoCountryCode.Append("") + b.MetaClientGeoContinentCode.Append("") + b.MetaClientGeoLongitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoLatitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.Nullable[uint32]{}) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.Nullable[string]{}) + b.MetaNetworkID.Append(0) + b.MetaNetworkName.Append("") + return + } + + b.MetaClientName.Append(event.GetMeta().GetClient().GetName()) + b.MetaClientID.Append(event.GetMeta().GetClient().GetId()) + b.MetaClientVersion.Append(event.GetMeta().GetClient().GetVersion()) + b.MetaClientImplementation.Append(event.GetMeta().GetClient().GetImplementation()) + b.MetaClientOS.Append(event.GetMeta().GetClient().GetOs()) + b.MetaClientIP.Append(proto.NewNullable[proto.IPv6](route.NormalizeIPToIPv6(event.GetMeta().GetServer().GetClient().GetIP()))) + b.MetaClientGeoCity.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCity()) + b.MetaClientGeoCountry.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountry()) + b.MetaClientGeoCountryCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountryCode()) + b.MetaClientGeoContinentCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetContinentCode()) + b.MetaClientGeoLongitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLongitude())) + b.MetaClientGeoLatitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLatitude())) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.NewNullable[uint32](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemNumber())) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.NewNullable[string](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemOrganization())) + b.MetaNetworkID.Append(int32(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetId())) + b.MetaNetworkName.Append(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetName()) +} + +func (b *libp2pGossipsubPayloadAttestationMessageBatch) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &b.UpdatedDateTime}, + {Name: "version", Data: &b.Version}, + {Name: "event_date_time", Data: &b.EventDateTime}, + {Name: "slot", Data: &b.Slot}, + {Name: "slot_start_date_time", Data: &b.SlotStartDateTime}, + {Name: "epoch", Data: &b.Epoch}, + {Name: "epoch_start_date_time", Data: &b.EpochStartDateTime}, + {Name: "wallclock_slot", Data: &b.WallclockSlot}, + {Name: "wallclock_slot_start_date_time", Data: &b.WallclockSlotStartDateTime}, + {Name: "wallclock_epoch", Data: &b.WallclockEpoch}, + {Name: "wallclock_epoch_start_date_time", Data: &b.WallclockEpochStartDateTime}, + {Name: "propagation_slot_start_diff", Data: &b.PropagationSlotStartDiff}, + {Name: "validator_index", Data: &b.ValidatorIndex}, + {Name: "beacon_block_root", Data: &b.BeaconBlockRoot}, + {Name: "payload_present", Data: &b.PayloadPresent}, + {Name: "blob_data_available", Data: &b.BlobDataAvailable}, + {Name: "peer_id_unique_key", Data: &b.PeerIDUniqueKey}, + {Name: "message_id", Data: &b.MessageID}, + {Name: "message_size", Data: &b.MessageSize}, + {Name: "topic_layer", Data: &b.TopicLayer}, + {Name: "topic_fork_digest_value", Data: &b.TopicForkDigestValue}, + {Name: "topic_name", Data: &b.TopicName}, + {Name: "topic_encoding", Data: &b.TopicEncoding}, + {Name: "meta_client_name", Data: &b.MetaClientName}, + {Name: "meta_client_id", Data: &b.MetaClientID}, + {Name: "meta_client_version", Data: &b.MetaClientVersion}, + {Name: "meta_client_implementation", Data: &b.MetaClientImplementation}, + {Name: "meta_client_os", Data: &b.MetaClientOS}, + {Name: "meta_client_ip", Data: b.MetaClientIP}, + {Name: "meta_client_geo_city", Data: &b.MetaClientGeoCity}, + {Name: "meta_client_geo_country", Data: &b.MetaClientGeoCountry}, + {Name: "meta_client_geo_country_code", Data: &b.MetaClientGeoCountryCode}, + {Name: "meta_client_geo_continent_code", Data: &b.MetaClientGeoContinentCode}, + {Name: "meta_client_geo_longitude", Data: b.MetaClientGeoLongitude}, + {Name: "meta_client_geo_latitude", Data: b.MetaClientGeoLatitude}, + {Name: "meta_client_geo_autonomous_system_number", Data: b.MetaClientGeoAutonomousSystemNumber}, + {Name: "meta_client_geo_autonomous_system_organization", Data: b.MetaClientGeoAutonomousSystemOrganization}, + {Name: "meta_network_id", Data: &b.MetaNetworkID}, + {Name: "meta_network_name", Data: &b.MetaNetworkName}, + } +} + +func (b *libp2pGossipsubPayloadAttestationMessageBatch) Reset() { + b.UpdatedDateTime.Reset() + b.Version.Reset() + b.EventDateTime.Reset() + b.Slot.Reset() + b.SlotStartDateTime.Reset() + b.Epoch.Reset() + b.EpochStartDateTime.Reset() + b.WallclockSlot.Reset() + b.WallclockSlotStartDateTime.Reset() + b.WallclockEpoch.Reset() + b.WallclockEpochStartDateTime.Reset() + b.PropagationSlotStartDiff.Reset() + b.ValidatorIndex.Reset() + b.BeaconBlockRoot.Reset() + b.PayloadPresent.Reset() + b.BlobDataAvailable.Reset() + b.PeerIDUniqueKey.Reset() + b.MessageID.Reset() + b.MessageSize.Reset() + b.TopicLayer.Reset() + b.TopicForkDigestValue.Reset() + b.TopicName.Reset() + b.TopicEncoding.Reset() + b.MetaClientName.Reset() + b.MetaClientID.Reset() + b.MetaClientVersion.Reset() + b.MetaClientImplementation.Reset() + b.MetaClientOS.Reset() + b.MetaClientIP.Reset() + b.MetaClientGeoCity.Reset() + b.MetaClientGeoCountry.Reset() + b.MetaClientGeoCountryCode.Reset() + b.MetaClientGeoContinentCode.Reset() + b.MetaClientGeoLongitude.Reset() + b.MetaClientGeoLatitude.Reset() + b.MetaClientGeoAutonomousSystemNumber.Reset() + b.MetaClientGeoAutonomousSystemOrganization.Reset() + b.MetaNetworkID.Reset() + b.MetaNetworkName.Reset() + b.rows = 0 +} + +func (b *libp2pGossipsubPayloadAttestationMessageBatch) Snapshot() []map[string]any { + n := b.rows + out := make([]map[string]any, n) + + for i := 0; i < n; i++ { + row := make(map[string]any, 39) + row["updated_date_time"] = b.UpdatedDateTime.Row(i).Unix() + row["version"] = b.Version.Row(i) + row["event_date_time"] = b.EventDateTime.Row(i).UnixMilli() + row["slot"] = b.Slot.Row(i) + row["slot_start_date_time"] = b.SlotStartDateTime.Row(i).Unix() + row["epoch"] = b.Epoch.Row(i) + row["epoch_start_date_time"] = b.EpochStartDateTime.Row(i).Unix() + row["wallclock_slot"] = b.WallclockSlot.Row(i) + row["wallclock_slot_start_date_time"] = b.WallclockSlotStartDateTime.Row(i).Unix() + row["wallclock_epoch"] = b.WallclockEpoch.Row(i) + row["wallclock_epoch_start_date_time"] = b.WallclockEpochStartDateTime.Row(i).Unix() + row["propagation_slot_start_diff"] = b.PropagationSlotStartDiff.Row(i) + row["validator_index"] = b.ValidatorIndex.Row(i) + row["beacon_block_root"] = string(b.BeaconBlockRoot.Row(i)) + row["payload_present"] = b.PayloadPresent.Row(i) + row["blob_data_available"] = b.BlobDataAvailable.Row(i) + row["peer_id_unique_key"] = b.PeerIDUniqueKey.Row(i) + row["message_id"] = b.MessageID.Row(i) + row["message_size"] = b.MessageSize.Row(i) + row["topic_layer"] = b.TopicLayer.Row(i) + row["topic_fork_digest_value"] = b.TopicForkDigestValue.Row(i) + row["topic_name"] = b.TopicName.Row(i) + row["topic_encoding"] = b.TopicEncoding.Row(i) + row["meta_client_name"] = b.MetaClientName.Row(i) + row["meta_client_id"] = b.MetaClientID.Row(i) + row["meta_client_version"] = b.MetaClientVersion.Row(i) + row["meta_client_implementation"] = b.MetaClientImplementation.Row(i) + row["meta_client_os"] = b.MetaClientOS.Row(i) + if v := b.MetaClientIP.Row(i); v.Set { + row["meta_client_ip"] = net.IP(v.Value[:]).String() + } else { + row["meta_client_ip"] = nil + } + row["meta_client_geo_city"] = b.MetaClientGeoCity.Row(i) + row["meta_client_geo_country"] = b.MetaClientGeoCountry.Row(i) + row["meta_client_geo_country_code"] = b.MetaClientGeoCountryCode.Row(i) + row["meta_client_geo_continent_code"] = b.MetaClientGeoContinentCode.Row(i) + if v := b.MetaClientGeoLongitude.Row(i); v.Set { + row["meta_client_geo_longitude"] = v.Value + } else { + row["meta_client_geo_longitude"] = nil + } + if v := b.MetaClientGeoLatitude.Row(i); v.Set { + row["meta_client_geo_latitude"] = v.Value + } else { + row["meta_client_geo_latitude"] = nil + } + if v := b.MetaClientGeoAutonomousSystemNumber.Row(i); v.Set { + row["meta_client_geo_autonomous_system_number"] = v.Value + } else { + row["meta_client_geo_autonomous_system_number"] = nil + } + if v := b.MetaClientGeoAutonomousSystemOrganization.Row(i); v.Set { + row["meta_client_geo_autonomous_system_organization"] = v.Value + } else { + row["meta_client_geo_autonomous_system_organization"] = nil + } + row["meta_network_id"] = b.MetaNetworkID.Row(i) + row["meta_network_name"] = b.MetaNetworkName.Row(i) + out[i] = row + } + + return out +} diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message.go new file mode 100644 index 000000000..3147d1fe2 --- /dev/null +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message.go @@ -0,0 +1,43 @@ +package libp2p + +import ( + "fmt" + + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +// TODO: Add the xatu.Event_* name(s) that route events to the libp2p_gossipsub_payload_attestation_message table. +var libp2pGossipsubPayloadAttestationMessageEventNames = []xatu.Event_Name{} + +func init() { + route, err := route.NewStaticRoute( + libp2pGossipsubPayloadAttestationMessageTableName, + libp2pGossipsubPayloadAttestationMessageEventNames, + func() route.ColumnarBatch { return newlibp2pGossipsubPayloadAttestationMessageBatch() }, + ) + if err != nil { + route.RecordError(err) + + return + } + + if err := route.Register(route); err != nil { + route.RecordError(err) + } +} + +func (b *libp2pGossipsubPayloadAttestationMessageBatch) FlattenTo( + event *xatu.DecoratedEvent, +) error { + // TODO: Implement this method to flatten the event into columnar batch columns. + // The generated .gen.go file contains the available column fields for this table. + // + // Typical structure: + // b.appendRuntime(event) + // b.appendMetadata(event) + // b.appendPayload(event) + // b.rows++ + // return nil + return fmt.Errorf("libp2pGossipsubPayloadAttestationMessage: FlattenTo not implemented") +} diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message_test.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message_test.go new file mode 100644 index 000000000..57e961d94 --- /dev/null +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message_test.go @@ -0,0 +1,27 @@ +package libp2p + +import ( + "testing" + + "github.com/ethpandaops/xatu/pkg/consumoor/route/testfixture" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +func TestSnapshot_libp2p_gossipsub_payload_attestation_message(t *testing.T) { + if len(libp2pGossipsubPayloadAttestationMessageEventNames) == 0 { + t.Skip("no event names registered for libp2p_gossipsub_payload_attestation_message") + } + + testfixture.AssertSnapshot(t, newlibp2pGossipsubPayloadAttestationMessageBatch(), &xatu.DecoratedEvent{ + Event: &xatu.Event{ + Name: libp2pGossipsubPayloadAttestationMessageEventNames[0], + DateTime: testfixture.TS(), + Id: "snapshot-1", + }, + Meta: testfixture.BaseMeta(), + // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + }, 1, map[string]any{ + "meta_client_name": "test-client", + // TODO: Add payload-specific column assertions. + }) +} diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences.gen.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences.gen.go new file mode 100644 index 000000000..e519b9ff6 --- /dev/null +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences.gen.go @@ -0,0 +1,265 @@ +// Code generated by chgo-rowgen; DO NOT EDIT. + +package libp2p + +import ( + "net" + + "github.com/ClickHouse/ch-go/proto" + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +const libp2pGossipsubProposerPreferencesTableName route.TableName = "libp2p_gossipsub_proposer_preferences" + +type libp2pGossipsubProposerPreferencesBatch struct { + UpdatedDateTime proto.ColDateTime + Version proto.ColUInt32 + EventDateTime proto.ColDateTime64 + Slot proto.ColUInt32 + SlotStartDateTime proto.ColDateTime + Epoch proto.ColUInt32 + EpochStartDateTime proto.ColDateTime + WallclockSlot proto.ColUInt32 + WallclockSlotStartDateTime proto.ColDateTime + WallclockEpoch proto.ColUInt32 + WallclockEpochStartDateTime proto.ColDateTime + PropagationSlotStartDiff proto.ColUInt32 + ValidatorIndex proto.ColUInt32 + FeeRecipient route.SafeColFixedStr + GasLimit proto.ColUInt64 + PeerIDUniqueKey proto.ColInt64 + MessageID proto.ColStr + MessageSize proto.ColUInt32 + TopicLayer proto.ColStr + TopicForkDigestValue proto.ColStr + TopicName proto.ColStr + TopicEncoding proto.ColStr + MetaClientName proto.ColStr + MetaClientID proto.ColStr + MetaClientVersion proto.ColStr + MetaClientImplementation proto.ColStr + MetaClientOS proto.ColStr + MetaClientIP *proto.ColNullable[proto.IPv6] + MetaClientGeoCity proto.ColStr + MetaClientGeoCountry proto.ColStr + MetaClientGeoCountryCode proto.ColStr + MetaClientGeoContinentCode proto.ColStr + MetaClientGeoLongitude *proto.ColNullable[float64] + MetaClientGeoLatitude *proto.ColNullable[float64] + MetaClientGeoAutonomousSystemNumber *proto.ColNullable[uint32] + MetaClientGeoAutonomousSystemOrganization *proto.ColNullable[string] + MetaNetworkID proto.ColInt32 + MetaNetworkName proto.ColStr + rows int +} + +func newlibp2pGossipsubProposerPreferencesBatch() *libp2pGossipsubProposerPreferencesBatch { + return &libp2pGossipsubProposerPreferencesBatch{ + EventDateTime: func() proto.ColDateTime64 { var c proto.ColDateTime64; c.WithPrecision(proto.Precision(3)); return c }(), + FeeRecipient: func() route.SafeColFixedStr { var c route.SafeColFixedStr; c.SetSize(42); return c }(), + MetaClientIP: new(proto.ColIPv6).Nullable(), + MetaClientGeoLongitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoLatitude: new(proto.ColFloat64).Nullable(), + MetaClientGeoAutonomousSystemNumber: new(proto.ColUInt32).Nullable(), + MetaClientGeoAutonomousSystemOrganization: new(proto.ColStr).Nullable(), + } +} + +func (b *libp2pGossipsubProposerPreferencesBatch) Rows() int { + return b.rows +} + +func (b *libp2pGossipsubProposerPreferencesBatch) appendMetadata(event *xatu.DecoratedEvent) { + if event == nil || event.GetMeta() == nil { + b.MetaClientName.Append("") + b.MetaClientID.Append("") + b.MetaClientVersion.Append("") + b.MetaClientImplementation.Append("") + b.MetaClientOS.Append("") + b.MetaClientIP.Append(proto.Nullable[proto.IPv6]{}) + b.MetaClientGeoCity.Append("") + b.MetaClientGeoCountry.Append("") + b.MetaClientGeoCountryCode.Append("") + b.MetaClientGeoContinentCode.Append("") + b.MetaClientGeoLongitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoLatitude.Append(proto.Nullable[float64]{}) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.Nullable[uint32]{}) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.Nullable[string]{}) + b.MetaNetworkID.Append(0) + b.MetaNetworkName.Append("") + return + } + + b.MetaClientName.Append(event.GetMeta().GetClient().GetName()) + b.MetaClientID.Append(event.GetMeta().GetClient().GetId()) + b.MetaClientVersion.Append(event.GetMeta().GetClient().GetVersion()) + b.MetaClientImplementation.Append(event.GetMeta().GetClient().GetImplementation()) + b.MetaClientOS.Append(event.GetMeta().GetClient().GetOs()) + b.MetaClientIP.Append(proto.NewNullable[proto.IPv6](route.NormalizeIPToIPv6(event.GetMeta().GetServer().GetClient().GetIP()))) + b.MetaClientGeoCity.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCity()) + b.MetaClientGeoCountry.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountry()) + b.MetaClientGeoCountryCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetCountryCode()) + b.MetaClientGeoContinentCode.Append(event.GetMeta().GetServer().GetClient().GetGeo().GetContinentCode()) + b.MetaClientGeoLongitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLongitude())) + b.MetaClientGeoLatitude.Append(proto.NewNullable[float64](event.GetMeta().GetServer().GetClient().GetGeo().GetLatitude())) + b.MetaClientGeoAutonomousSystemNumber.Append(proto.NewNullable[uint32](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemNumber())) + b.MetaClientGeoAutonomousSystemOrganization.Append(proto.NewNullable[string](event.GetMeta().GetServer().GetClient().GetGeo().GetAutonomousSystemOrganization())) + b.MetaNetworkID.Append(int32(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetId())) + b.MetaNetworkName.Append(event.GetMeta().GetClient().GetEthereum().GetNetwork().GetName()) +} + +func (b *libp2pGossipsubProposerPreferencesBatch) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &b.UpdatedDateTime}, + {Name: "version", Data: &b.Version}, + {Name: "event_date_time", Data: &b.EventDateTime}, + {Name: "slot", Data: &b.Slot}, + {Name: "slot_start_date_time", Data: &b.SlotStartDateTime}, + {Name: "epoch", Data: &b.Epoch}, + {Name: "epoch_start_date_time", Data: &b.EpochStartDateTime}, + {Name: "wallclock_slot", Data: &b.WallclockSlot}, + {Name: "wallclock_slot_start_date_time", Data: &b.WallclockSlotStartDateTime}, + {Name: "wallclock_epoch", Data: &b.WallclockEpoch}, + {Name: "wallclock_epoch_start_date_time", Data: &b.WallclockEpochStartDateTime}, + {Name: "propagation_slot_start_diff", Data: &b.PropagationSlotStartDiff}, + {Name: "validator_index", Data: &b.ValidatorIndex}, + {Name: "fee_recipient", Data: &b.FeeRecipient}, + {Name: "gas_limit", Data: &b.GasLimit}, + {Name: "peer_id_unique_key", Data: &b.PeerIDUniqueKey}, + {Name: "message_id", Data: &b.MessageID}, + {Name: "message_size", Data: &b.MessageSize}, + {Name: "topic_layer", Data: &b.TopicLayer}, + {Name: "topic_fork_digest_value", Data: &b.TopicForkDigestValue}, + {Name: "topic_name", Data: &b.TopicName}, + {Name: "topic_encoding", Data: &b.TopicEncoding}, + {Name: "meta_client_name", Data: &b.MetaClientName}, + {Name: "meta_client_id", Data: &b.MetaClientID}, + {Name: "meta_client_version", Data: &b.MetaClientVersion}, + {Name: "meta_client_implementation", Data: &b.MetaClientImplementation}, + {Name: "meta_client_os", Data: &b.MetaClientOS}, + {Name: "meta_client_ip", Data: b.MetaClientIP}, + {Name: "meta_client_geo_city", Data: &b.MetaClientGeoCity}, + {Name: "meta_client_geo_country", Data: &b.MetaClientGeoCountry}, + {Name: "meta_client_geo_country_code", Data: &b.MetaClientGeoCountryCode}, + {Name: "meta_client_geo_continent_code", Data: &b.MetaClientGeoContinentCode}, + {Name: "meta_client_geo_longitude", Data: b.MetaClientGeoLongitude}, + {Name: "meta_client_geo_latitude", Data: b.MetaClientGeoLatitude}, + {Name: "meta_client_geo_autonomous_system_number", Data: b.MetaClientGeoAutonomousSystemNumber}, + {Name: "meta_client_geo_autonomous_system_organization", Data: b.MetaClientGeoAutonomousSystemOrganization}, + {Name: "meta_network_id", Data: &b.MetaNetworkID}, + {Name: "meta_network_name", Data: &b.MetaNetworkName}, + } +} + +func (b *libp2pGossipsubProposerPreferencesBatch) Reset() { + b.UpdatedDateTime.Reset() + b.Version.Reset() + b.EventDateTime.Reset() + b.Slot.Reset() + b.SlotStartDateTime.Reset() + b.Epoch.Reset() + b.EpochStartDateTime.Reset() + b.WallclockSlot.Reset() + b.WallclockSlotStartDateTime.Reset() + b.WallclockEpoch.Reset() + b.WallclockEpochStartDateTime.Reset() + b.PropagationSlotStartDiff.Reset() + b.ValidatorIndex.Reset() + b.FeeRecipient.Reset() + b.GasLimit.Reset() + b.PeerIDUniqueKey.Reset() + b.MessageID.Reset() + b.MessageSize.Reset() + b.TopicLayer.Reset() + b.TopicForkDigestValue.Reset() + b.TopicName.Reset() + b.TopicEncoding.Reset() + b.MetaClientName.Reset() + b.MetaClientID.Reset() + b.MetaClientVersion.Reset() + b.MetaClientImplementation.Reset() + b.MetaClientOS.Reset() + b.MetaClientIP.Reset() + b.MetaClientGeoCity.Reset() + b.MetaClientGeoCountry.Reset() + b.MetaClientGeoCountryCode.Reset() + b.MetaClientGeoContinentCode.Reset() + b.MetaClientGeoLongitude.Reset() + b.MetaClientGeoLatitude.Reset() + b.MetaClientGeoAutonomousSystemNumber.Reset() + b.MetaClientGeoAutonomousSystemOrganization.Reset() + b.MetaNetworkID.Reset() + b.MetaNetworkName.Reset() + b.rows = 0 +} + +func (b *libp2pGossipsubProposerPreferencesBatch) Snapshot() []map[string]any { + n := b.rows + out := make([]map[string]any, n) + + for i := 0; i < n; i++ { + row := make(map[string]any, 38) + row["updated_date_time"] = b.UpdatedDateTime.Row(i).Unix() + row["version"] = b.Version.Row(i) + row["event_date_time"] = b.EventDateTime.Row(i).UnixMilli() + row["slot"] = b.Slot.Row(i) + row["slot_start_date_time"] = b.SlotStartDateTime.Row(i).Unix() + row["epoch"] = b.Epoch.Row(i) + row["epoch_start_date_time"] = b.EpochStartDateTime.Row(i).Unix() + row["wallclock_slot"] = b.WallclockSlot.Row(i) + row["wallclock_slot_start_date_time"] = b.WallclockSlotStartDateTime.Row(i).Unix() + row["wallclock_epoch"] = b.WallclockEpoch.Row(i) + row["wallclock_epoch_start_date_time"] = b.WallclockEpochStartDateTime.Row(i).Unix() + row["propagation_slot_start_diff"] = b.PropagationSlotStartDiff.Row(i) + row["validator_index"] = b.ValidatorIndex.Row(i) + row["fee_recipient"] = string(b.FeeRecipient.Row(i)) + row["gas_limit"] = b.GasLimit.Row(i) + row["peer_id_unique_key"] = b.PeerIDUniqueKey.Row(i) + row["message_id"] = b.MessageID.Row(i) + row["message_size"] = b.MessageSize.Row(i) + row["topic_layer"] = b.TopicLayer.Row(i) + row["topic_fork_digest_value"] = b.TopicForkDigestValue.Row(i) + row["topic_name"] = b.TopicName.Row(i) + row["topic_encoding"] = b.TopicEncoding.Row(i) + row["meta_client_name"] = b.MetaClientName.Row(i) + row["meta_client_id"] = b.MetaClientID.Row(i) + row["meta_client_version"] = b.MetaClientVersion.Row(i) + row["meta_client_implementation"] = b.MetaClientImplementation.Row(i) + row["meta_client_os"] = b.MetaClientOS.Row(i) + if v := b.MetaClientIP.Row(i); v.Set { + row["meta_client_ip"] = net.IP(v.Value[:]).String() + } else { + row["meta_client_ip"] = nil + } + row["meta_client_geo_city"] = b.MetaClientGeoCity.Row(i) + row["meta_client_geo_country"] = b.MetaClientGeoCountry.Row(i) + row["meta_client_geo_country_code"] = b.MetaClientGeoCountryCode.Row(i) + row["meta_client_geo_continent_code"] = b.MetaClientGeoContinentCode.Row(i) + if v := b.MetaClientGeoLongitude.Row(i); v.Set { + row["meta_client_geo_longitude"] = v.Value + } else { + row["meta_client_geo_longitude"] = nil + } + if v := b.MetaClientGeoLatitude.Row(i); v.Set { + row["meta_client_geo_latitude"] = v.Value + } else { + row["meta_client_geo_latitude"] = nil + } + if v := b.MetaClientGeoAutonomousSystemNumber.Row(i); v.Set { + row["meta_client_geo_autonomous_system_number"] = v.Value + } else { + row["meta_client_geo_autonomous_system_number"] = nil + } + if v := b.MetaClientGeoAutonomousSystemOrganization.Row(i); v.Set { + row["meta_client_geo_autonomous_system_organization"] = v.Value + } else { + row["meta_client_geo_autonomous_system_organization"] = nil + } + row["meta_network_id"] = b.MetaNetworkID.Row(i) + row["meta_network_name"] = b.MetaNetworkName.Row(i) + out[i] = row + } + + return out +} diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences.go new file mode 100644 index 000000000..ac2beedfc --- /dev/null +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences.go @@ -0,0 +1,43 @@ +package libp2p + +import ( + "fmt" + + "github.com/ethpandaops/xatu/pkg/consumoor/route" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +// TODO: Add the xatu.Event_* name(s) that route events to the libp2p_gossipsub_proposer_preferences table. +var libp2pGossipsubProposerPreferencesEventNames = []xatu.Event_Name{} + +func init() { + route, err := route.NewStaticRoute( + libp2pGossipsubProposerPreferencesTableName, + libp2pGossipsubProposerPreferencesEventNames, + func() route.ColumnarBatch { return newlibp2pGossipsubProposerPreferencesBatch() }, + ) + if err != nil { + route.RecordError(err) + + return + } + + if err := route.Register(route); err != nil { + route.RecordError(err) + } +} + +func (b *libp2pGossipsubProposerPreferencesBatch) FlattenTo( + event *xatu.DecoratedEvent, +) error { + // TODO: Implement this method to flatten the event into columnar batch columns. + // The generated .gen.go file contains the available column fields for this table. + // + // Typical structure: + // b.appendRuntime(event) + // b.appendMetadata(event) + // b.appendPayload(event) + // b.rows++ + // return nil + return fmt.Errorf("libp2pGossipsubProposerPreferences: FlattenTo not implemented") +} diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences_test.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences_test.go new file mode 100644 index 000000000..671fe0949 --- /dev/null +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences_test.go @@ -0,0 +1,27 @@ +package libp2p + +import ( + "testing" + + "github.com/ethpandaops/xatu/pkg/consumoor/route/testfixture" + "github.com/ethpandaops/xatu/pkg/proto/xatu" +) + +func TestSnapshot_libp2p_gossipsub_proposer_preferences(t *testing.T) { + if len(libp2pGossipsubProposerPreferencesEventNames) == 0 { + t.Skip("no event names registered for libp2p_gossipsub_proposer_preferences") + } + + testfixture.AssertSnapshot(t, newlibp2pGossipsubProposerPreferencesBatch(), &xatu.DecoratedEvent{ + Event: &xatu.Event{ + Name: libp2pGossipsubProposerPreferencesEventNames[0], + DateTime: testfixture.TS(), + Id: "snapshot-1", + }, + Meta: testfixture.BaseMeta(), + // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + }, 1, map[string]any{ + "meta_client_name": "test-client", + // TODO: Add payload-specific column assertions. + }) +} diff --git a/pkg/proto/eth/block.go b/pkg/proto/eth/block.go index 0f8afdb31..420369abb 100644 --- a/pkg/proto/eth/block.go +++ b/pkg/proto/eth/block.go @@ -463,6 +463,10 @@ func NewEventBlockFromFulu(block *electra.BeaconBlock, signature *phase0.BLSSign } // NewEventBlockFromGloas creates an EventBlockV2 from a Gloas (EIP-7928) beacon block. +// TODO(epbs): Under EIP-7732, the block body has a SignedExecutionPayloadBid instead of an +// inline ExecutionPayload. The bid fields (builder_index, value, execution_payment) and +// payload_attestations need to be populated here once go-eth2-client adds ePBS support. +// The execution payload itself arrives via a separate ExecutionPayloadEnvelope event. func NewEventBlockFromGloas(block *gloas.BeaconBlock, signature *phase0.BLSSignature) *v2.EventBlockV2 { kzgCommitments := make([]string, 0, len(block.Body.BlobKZGCommitments)) diff --git a/pkg/sentry/beacon_blob.go b/pkg/sentry/beacon_blob.go index 47d161bcd..3223cc30a 100644 --- a/pkg/sentry/beacon_blob.go +++ b/pkg/sentry/beacon_blob.go @@ -201,6 +201,8 @@ func extractKZGCommitments(block *spec.VersionedSignedBeaconBlock) ([]deneb.KZGC return block.Fulu.Message.Body.BlobKZGCommitments, nil } case spec.DataVersionGloas: + // TODO(epbs): Under EIP-7732, BlobKZGCommitments move to the ExecutionPayloadBid. + // Source from bid once go-eth2-client adds ePBS support. if block.Gloas != nil && block.Gloas.Message != nil && block.Gloas.Message.Body != nil { return block.Gloas.Message.Body.BlobKZGCommitments, nil } diff --git a/pkg/sentry/event/beacon/eth/v3/proposed_validator_block.go b/pkg/sentry/event/beacon/eth/v3/proposed_validator_block.go index 082d42792..9751d3b29 100644 --- a/pkg/sentry/event/beacon/eth/v3/proposed_validator_block.go +++ b/pkg/sentry/event/beacon/eth/v3/proposed_validator_block.go @@ -206,6 +206,8 @@ func (e *ValidatorBlock) getAdditionalData() (*xatu.ClientMeta_AdditionalEthV3Va addTxData(fuluTxs) case spec.DataVersionGloas: + // TODO(epbs): Under EIP-7732, ExecutionPayload and Transactions move to the + // envelope. Source from ExecutionPayloadEnvelope once go-eth2-client adds ePBS support. totalBytes, totalBytesCompressed, err = computeBlockSize(e.event.Gloas.Body) if err != nil { e.log.WithError(err).Warn("Failed to compute gloas block size") From fb2b3b3e02ac7cd7f6921098178f8c44e2b4696c Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Thu, 26 Mar 2026 13:47:35 +1000 Subject: [PATCH 20/23] feat(beacon): add event names for various beacon API events to handle execution payload and proposer preferences. feat(libp2p): add event names for libp2p Gossipsub events to manage payload attestation and proposer preferences. fix(routes_test): remove deprecated events from test coverage related to pending routes for ePBS. refactor(canonical): implement flattening methods for execution payload bid, payload attestation, and beacon block related events. --- ...con_api_eth_v1_events_execution_payload.go | 79 +++++++++--- ...api_eth_v1_events_execution_payload_bid.go | 95 ++++++++++++--- ...n_api_eth_v1_events_payload_attestation.go | 79 +++++++++--- ..._api_eth_v1_events_proposer_preferences.go | 77 +++++++++--- .../canonical_beacon_block_access_list.go | 4 +- ...ical_beacon_block_execution_payload_bid.go | 93 ++++++++++++--- ...onical_beacon_block_payload_attestation.go | 76 +++++++++--- .../libp2p_gossipsub_execution_payload_bid.go | 112 +++++++++++++++--- ...2p_gossipsub_execution_payload_envelope.go | 91 +++++++++++--- ...p_gossipsub_payload_attestation_message.go | 102 +++++++++++++--- .../libp2p_gossipsub_proposer_preferences.go | 92 +++++++++++--- pkg/consumoor/route/routes_test.go | 12 -- 12 files changed, 758 insertions(+), 154 deletions(-) diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload.go index ab77a08b6..fa4fb1e5b 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload.go @@ -2,16 +2,18 @@ package beacon import ( "fmt" + "time" "github.com/ethpandaops/xatu/pkg/consumoor/route" "github.com/ethpandaops/xatu/pkg/proto/xatu" ) -// TODO: Add the xatu.Event_* name(s) that route events to the beacon_api_eth_v1_events_execution_payload table. -var beaconApiEthV1EventsExecutionPayloadEventNames = []xatu.Event_Name{} +var beaconApiEthV1EventsExecutionPayloadEventNames = []xatu.Event_Name{ + xatu.Event_BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD, +} func init() { - route, err := route.NewStaticRoute( + r, err := route.NewStaticRoute( beaconApiEthV1EventsExecutionPayloadTableName, beaconApiEthV1EventsExecutionPayloadEventNames, func() route.ColumnarBatch { return newbeaconApiEthV1EventsExecutionPayloadBatch() }, @@ -22,7 +24,7 @@ func init() { return } - if err := route.Register(route); err != nil { + if err := route.Register(r); err != nil { route.RecordError(err) } } @@ -30,14 +32,63 @@ func init() { func (b *beaconApiEthV1EventsExecutionPayloadBatch) FlattenTo( event *xatu.DecoratedEvent, ) error { - // TODO: Implement this method to flatten the event into columnar batch columns. - // The generated .gen.go file contains the available column fields for this table. - // - // Typical structure: - // b.appendRuntime(event) - // b.appendMetadata(event) - // b.appendPayload(event) - // b.rows++ - // return nil - return fmt.Errorf("beaconApiEthV1EventsExecutionPayload: FlattenTo not implemented") + if event == nil || event.GetEvent() == nil { + return nil + } + + if event.GetEthV1EventsExecutionPayload() == nil { + return fmt.Errorf("nil eth_v1_events_execution_payload payload: %w", route.ErrInvalidEvent) + } + + b.appendRuntime(event) + b.appendMetadata(event) + b.appendPayload(event) + b.appendAdditionalData(event) + b.rows++ + + return nil +} + +func (b *beaconApiEthV1EventsExecutionPayloadBatch) appendRuntime(event *xatu.DecoratedEvent) { + b.UpdatedDateTime.Append(time.Now()) + + if ts := event.GetEvent().GetDateTime(); ts != nil { + b.EventDateTime.Append(ts.AsTime()) + } else { + b.EventDateTime.Append(time.Time{}) + } +} + +func (b *beaconApiEthV1EventsExecutionPayloadBatch) appendPayload(event *xatu.DecoratedEvent) { + envelope := event.GetEthV1EventsExecutionPayload() + + msg := envelope.GetMessage() + + b.BlockRoot.Append([]byte(msg.GetBeaconBlockRoot())) + + if builderIndex := msg.GetBuilderIndex(); builderIndex != nil { + b.BuilderIndex.Append(builderIndex.GetValue()) + } else { + b.BuilderIndex.Append(0) + } + + if payload := msg.GetPayload(); payload != nil { + b.BlockHash.Append([]byte(payload.GetBlockHash())) + b.StateRoot.Append([]byte(payload.GetStateRoot())) + } else { + b.BlockHash.Append(nil) + b.StateRoot.Append(nil) + } +} + +// TODO: Define AdditionalEthV1EventsExecutionPayloadData proto message to extract +// slot/epoch/propagation from event.GetMeta().GetClient(). For now, zero-fill these fields. +func (b *beaconApiEthV1EventsExecutionPayloadBatch) appendAdditionalData( + _ *xatu.DecoratedEvent, +) { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) } diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid.go index eb74f95c5..027b17e26 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid.go @@ -2,16 +2,18 @@ package beacon import ( "fmt" + "time" "github.com/ethpandaops/xatu/pkg/consumoor/route" "github.com/ethpandaops/xatu/pkg/proto/xatu" ) -// TODO: Add the xatu.Event_* name(s) that route events to the beacon_api_eth_v1_events_execution_payload_bid table. -var beaconApiEthV1EventsExecutionPayloadBidEventNames = []xatu.Event_Name{} +var beaconApiEthV1EventsExecutionPayloadBidEventNames = []xatu.Event_Name{ + xatu.Event_BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD_BID, +} func init() { - route, err := route.NewStaticRoute( + r, err := route.NewStaticRoute( beaconApiEthV1EventsExecutionPayloadBidTableName, beaconApiEthV1EventsExecutionPayloadBidEventNames, func() route.ColumnarBatch { return newbeaconApiEthV1EventsExecutionPayloadBidBatch() }, @@ -22,7 +24,7 @@ func init() { return } - if err := route.Register(route); err != nil { + if err := route.Register(r); err != nil { route.RecordError(err) } } @@ -30,14 +32,79 @@ func init() { func (b *beaconApiEthV1EventsExecutionPayloadBidBatch) FlattenTo( event *xatu.DecoratedEvent, ) error { - // TODO: Implement this method to flatten the event into columnar batch columns. - // The generated .gen.go file contains the available column fields for this table. - // - // Typical structure: - // b.appendRuntime(event) - // b.appendMetadata(event) - // b.appendPayload(event) - // b.rows++ - // return nil - return fmt.Errorf("beaconApiEthV1EventsExecutionPayloadBid: FlattenTo not implemented") + if event == nil || event.GetEvent() == nil { + return nil + } + + if event.GetEthV1EventsExecutionPayloadBid() == nil { + return fmt.Errorf("nil eth_v1_events_execution_payload_bid payload: %w", route.ErrInvalidEvent) + } + + b.appendRuntime(event) + b.appendMetadata(event) + b.appendPayload(event) + b.appendAdditionalData(event) + b.rows++ + + return nil +} + +func (b *beaconApiEthV1EventsExecutionPayloadBidBatch) appendRuntime(event *xatu.DecoratedEvent) { + b.UpdatedDateTime.Append(time.Now()) + + if ts := event.GetEvent().GetDateTime(); ts != nil { + b.EventDateTime.Append(ts.AsTime()) + } else { + b.EventDateTime.Append(time.Time{}) + } +} + +func (b *beaconApiEthV1EventsExecutionPayloadBidBatch) appendPayload(event *xatu.DecoratedEvent) { + signed := event.GetEthV1EventsExecutionPayloadBid() + bid := signed.GetMessage() + + if builderIndex := bid.GetBuilderIndex(); builderIndex != nil { + b.BuilderIndex.Append(builderIndex.GetValue()) + } else { + b.BuilderIndex.Append(0) + } + + b.BlockHash.Append([]byte(bid.GetBlockHash())) + b.ParentBlockHash.Append([]byte(bid.GetParentBlockHash())) + b.ParentBlockRoot.Append([]byte(bid.GetParentBlockRoot())) + + if value := bid.GetValue(); value != nil { + b.Value.Append(value.GetValue()) + } else { + b.Value.Append(0) + } + + if executionPayment := bid.GetExecutionPayment(); executionPayment != nil { + b.ExecutionPayment.Append(executionPayment.GetValue()) + } else { + b.ExecutionPayment.Append(0) + } + + b.FeeRecipient.Append([]byte(bid.GetFeeRecipient())) + + if gasLimit := bid.GetGasLimit(); gasLimit != nil { + b.GasLimit.Append(gasLimit.GetValue()) + } else { + b.GasLimit.Append(0) + } + + //nolint:gosec // G115: length of blob kzg commitments fits uint32 + b.BlobKzgCommitmentCount.Append(uint32(len(bid.GetBlobKzgCommitments()))) +} + +// TODO: Define AdditionalEthV1EventsExecutionPayloadBidData proto message to extract +// slot/epoch/propagation from event.GetMeta().GetClient(). For now, zero-fill these fields. +func (b *beaconApiEthV1EventsExecutionPayloadBidBatch) appendAdditionalData( + _ *xatu.DecoratedEvent, +) { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) } diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation.go index 2bdfda6fa..51e639b37 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation.go @@ -2,16 +2,18 @@ package beacon import ( "fmt" + "time" "github.com/ethpandaops/xatu/pkg/consumoor/route" "github.com/ethpandaops/xatu/pkg/proto/xatu" ) -// TODO: Add the xatu.Event_* name(s) that route events to the beacon_api_eth_v1_events_payload_attestation table. -var beaconApiEthV1EventsPayloadAttestationEventNames = []xatu.Event_Name{} +var beaconApiEthV1EventsPayloadAttestationEventNames = []xatu.Event_Name{ + xatu.Event_BEACON_API_ETH_V1_EVENTS_PAYLOAD_ATTESTATION, +} func init() { - route, err := route.NewStaticRoute( + r, err := route.NewStaticRoute( beaconApiEthV1EventsPayloadAttestationTableName, beaconApiEthV1EventsPayloadAttestationEventNames, func() route.ColumnarBatch { return newbeaconApiEthV1EventsPayloadAttestationBatch() }, @@ -22,7 +24,7 @@ func init() { return } - if err := route.Register(route); err != nil { + if err := route.Register(r); err != nil { route.RecordError(err) } } @@ -30,14 +32,63 @@ func init() { func (b *beaconApiEthV1EventsPayloadAttestationBatch) FlattenTo( event *xatu.DecoratedEvent, ) error { - // TODO: Implement this method to flatten the event into columnar batch columns. - // The generated .gen.go file contains the available column fields for this table. - // - // Typical structure: - // b.appendRuntime(event) - // b.appendMetadata(event) - // b.appendPayload(event) - // b.rows++ - // return nil - return fmt.Errorf("beaconApiEthV1EventsPayloadAttestation: FlattenTo not implemented") + if event == nil || event.GetEvent() == nil { + return nil + } + + if event.GetEthV1EventsPayloadAttestation() == nil { + return fmt.Errorf("nil eth_v1_events_payload_attestation payload: %w", route.ErrInvalidEvent) + } + + b.appendRuntime(event) + b.appendMetadata(event) + b.appendPayload(event) + b.appendAdditionalData(event) + b.rows++ + + return nil +} + +func (b *beaconApiEthV1EventsPayloadAttestationBatch) appendRuntime(event *xatu.DecoratedEvent) { + b.UpdatedDateTime.Append(time.Now()) + + if ts := event.GetEvent().GetDateTime(); ts != nil { + b.EventDateTime.Append(ts.AsTime()) + } else { + b.EventDateTime.Append(time.Time{}) + } +} + +//nolint:gosec // G115: proto uint64 values are bounded by ClickHouse column schema +func (b *beaconApiEthV1EventsPayloadAttestationBatch) appendPayload(event *xatu.DecoratedEvent) { + msg := event.GetEthV1EventsPayloadAttestation() + + if validatorIndex := msg.GetValidatorIndex(); validatorIndex != nil { + b.ValidatorIndex.Append(uint32(validatorIndex.GetValue())) + } else { + b.ValidatorIndex.Append(0) + } + + data := msg.GetData() + if data != nil { + b.BeaconBlockRoot.Append([]byte(data.GetBeaconBlockRoot())) + b.PayloadPresent.Append(data.GetPayloadPresent()) + b.BlobDataAvailable.Append(data.GetBlobDataAvailable()) + } else { + b.BeaconBlockRoot.Append(nil) + b.PayloadPresent.Append(false) + b.BlobDataAvailable.Append(false) + } +} + +// TODO: Define AdditionalEthV1EventsPayloadAttestationData proto message to extract +// slot/epoch/propagation from event.GetMeta().GetClient(). For now, zero-fill these fields. +func (b *beaconApiEthV1EventsPayloadAttestationBatch) appendAdditionalData( + _ *xatu.DecoratedEvent, +) { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) } diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences.go index ff0cbd4a4..760019af8 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences.go @@ -2,16 +2,18 @@ package beacon import ( "fmt" + "time" "github.com/ethpandaops/xatu/pkg/consumoor/route" "github.com/ethpandaops/xatu/pkg/proto/xatu" ) -// TODO: Add the xatu.Event_* name(s) that route events to the beacon_api_eth_v1_events_proposer_preferences table. -var beaconApiEthV1EventsProposerPreferencesEventNames = []xatu.Event_Name{} +var beaconApiEthV1EventsProposerPreferencesEventNames = []xatu.Event_Name{ + xatu.Event_BEACON_API_ETH_V1_EVENTS_PROPOSER_PREFERENCES, +} func init() { - route, err := route.NewStaticRoute( + r, err := route.NewStaticRoute( beaconApiEthV1EventsProposerPreferencesTableName, beaconApiEthV1EventsProposerPreferencesEventNames, func() route.ColumnarBatch { return newbeaconApiEthV1EventsProposerPreferencesBatch() }, @@ -22,7 +24,7 @@ func init() { return } - if err := route.Register(route); err != nil { + if err := route.Register(r); err != nil { route.RecordError(err) } } @@ -30,14 +32,61 @@ func init() { func (b *beaconApiEthV1EventsProposerPreferencesBatch) FlattenTo( event *xatu.DecoratedEvent, ) error { - // TODO: Implement this method to flatten the event into columnar batch columns. - // The generated .gen.go file contains the available column fields for this table. - // - // Typical structure: - // b.appendRuntime(event) - // b.appendMetadata(event) - // b.appendPayload(event) - // b.rows++ - // return nil - return fmt.Errorf("beaconApiEthV1EventsProposerPreferences: FlattenTo not implemented") + if event == nil || event.GetEvent() == nil { + return nil + } + + if event.GetEthV1EventsProposerPreferences() == nil { + return fmt.Errorf("nil eth_v1_events_proposer_preferences payload: %w", route.ErrInvalidEvent) + } + + b.appendRuntime(event) + b.appendMetadata(event) + b.appendPayload(event) + b.appendAdditionalData(event) + b.rows++ + + return nil +} + +func (b *beaconApiEthV1EventsProposerPreferencesBatch) appendRuntime(event *xatu.DecoratedEvent) { + b.UpdatedDateTime.Append(time.Now()) + + if ts := event.GetEvent().GetDateTime(); ts != nil { + b.EventDateTime.Append(ts.AsTime()) + } else { + b.EventDateTime.Append(time.Time{}) + } +} + +//nolint:gosec // G115: proto uint64 values are bounded by ClickHouse column schema +func (b *beaconApiEthV1EventsProposerPreferencesBatch) appendPayload(event *xatu.DecoratedEvent) { + signed := event.GetEthV1EventsProposerPreferences() + prefs := signed.GetMessage() + + if validatorIndex := prefs.GetValidatorIndex(); validatorIndex != nil { + b.ValidatorIndex.Append(uint32(validatorIndex.GetValue())) + } else { + b.ValidatorIndex.Append(0) + } + + b.FeeRecipient.Append([]byte(prefs.GetFeeRecipient())) + + if gasLimit := prefs.GetGasLimit(); gasLimit != nil { + b.GasLimit.Append(gasLimit.GetValue()) + } else { + b.GasLimit.Append(0) + } +} + +// TODO: Define AdditionalEthV1EventsProposerPreferencesData proto message to extract +// slot/epoch/propagation from event.GetMeta().GetClient(). For now, zero-fill these fields. +func (b *beaconApiEthV1EventsProposerPreferencesBatch) appendAdditionalData( + _ *xatu.DecoratedEvent, +) { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) } diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.go b/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.go index 750b8c9ee..1b43b272b 100644 --- a/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.go +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_access_list.go @@ -77,7 +77,7 @@ func (b *canonicalBeaconBlockAccessListBatch) appendPayload(event *xatu.Decorate b.ChangeType.Append(change.GetChangeType()) if blockAccessIndex := change.GetBlockAccessIndex(); blockAccessIndex != nil { - b.BlockAccessIndex.Append(blockAccessIndex.GetValue()) + b.BlockAccessIndex.Append(uint16(blockAccessIndex.GetValue())) //nolint:gosec // block_access_index fits uint16 } else { b.BlockAccessIndex.Append(0) } @@ -115,7 +115,7 @@ func (b *canonicalBeaconBlockAccessListBatch) appendAdditionalData(event *xatu.D &b.Slot, &b.SlotStartDateTime, &b.Epoch, &b.EpochStartDateTime, nil, &b.BlockRoot) if blockNumber := additional.GetBlockNumber(); blockNumber != nil { - b.BlockNumber.Append(uint32(blockNumber.GetValue())) //nolint:gosec // block number fits uint32 + b.BlockNumber.Append(blockNumber.GetValue()) } else { b.BlockNumber.Append(0) } diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid.go b/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid.go index be9bf80ce..6113075fc 100644 --- a/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid.go +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid.go @@ -2,16 +2,18 @@ package canonical import ( "fmt" + "time" "github.com/ethpandaops/xatu/pkg/consumoor/route" "github.com/ethpandaops/xatu/pkg/proto/xatu" ) -// TODO: Add the xatu.Event_* name(s) that route events to the canonical_beacon_block_execution_payload_bid table. -var canonicalBeaconBlockExecutionPayloadBidEventNames = []xatu.Event_Name{} +var canonicalBeaconBlockExecutionPayloadBidEventNames = []xatu.Event_Name{ + xatu.Event_BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID, +} func init() { - route, err := route.NewStaticRoute( + r, err := route.NewStaticRoute( canonicalBeaconBlockExecutionPayloadBidTableName, canonicalBeaconBlockExecutionPayloadBidEventNames, func() route.ColumnarBatch { return newcanonicalBeaconBlockExecutionPayloadBidBatch() }, @@ -22,7 +24,7 @@ func init() { return } - if err := route.Register(route); err != nil { + if err := route.Register(r); err != nil { route.RecordError(err) } } @@ -30,14 +32,77 @@ func init() { func (b *canonicalBeaconBlockExecutionPayloadBidBatch) FlattenTo( event *xatu.DecoratedEvent, ) error { - // TODO: Implement this method to flatten the event into columnar batch columns. - // The generated .gen.go file contains the available column fields for this table. - // - // Typical structure: - // b.appendRuntime(event) - // b.appendMetadata(event) - // b.appendPayload(event) - // b.rows++ - // return nil - return fmt.Errorf("canonicalBeaconBlockExecutionPayloadBid: FlattenTo not implemented") + if event == nil || event.GetEvent() == nil { + return nil + } + + if event.GetEthV2BeaconBlockExecutionPayloadBid() == nil { + return fmt.Errorf("nil eth_v2_beacon_block_execution_payload_bid payload: %w", route.ErrInvalidEvent) + } + + b.appendRuntime(event) + b.appendMetadata(event) + b.appendPayload(event) + b.appendAdditionalData(event) + b.rows++ + + return nil +} + +func (b *canonicalBeaconBlockExecutionPayloadBidBatch) appendRuntime(_ *xatu.DecoratedEvent) { + b.UpdatedDateTime.Append(time.Now()) +} + +func (b *canonicalBeaconBlockExecutionPayloadBidBatch) appendPayload(event *xatu.DecoratedEvent) { + signed := event.GetEthV2BeaconBlockExecutionPayloadBid() + bid := signed.GetMessage() + + if builderIndex := bid.GetBuilderIndex(); builderIndex != nil { + b.BuilderIndex.Append(builderIndex.GetValue()) + } else { + b.BuilderIndex.Append(0) + } + + b.BlockHash.Append([]byte(bid.GetBlockHash())) + b.ParentBlockHash.Append([]byte(bid.GetParentBlockHash())) + b.ParentBlockRoot.Append([]byte(bid.GetParentBlockRoot())) + + if value := bid.GetValue(); value != nil { + b.Value.Append(value.GetValue()) + } else { + b.Value.Append(0) + } + + if executionPayment := bid.GetExecutionPayment(); executionPayment != nil { + b.ExecutionPayment.Append(executionPayment.GetValue()) + } else { + b.ExecutionPayment.Append(0) + } + + b.FeeRecipient.Append([]byte(bid.GetFeeRecipient())) + + if gasLimit := bid.GetGasLimit(); gasLimit != nil { + b.GasLimit.Append(gasLimit.GetValue()) + } else { + b.GasLimit.Append(0) + } + + b.PrevRandao.Append([]byte(bid.GetPrevRandao())) + + //nolint:gosec // G115: length of blob kzg commitments fits uint32 + b.BlobKzgCommitmentCount.Append(uint32(len(bid.GetBlobKzgCommitments()))) +} + +// TODO: Define AdditionalEthV2BeaconBlockExecutionPayloadBidData proto message to extract +// block identifier (slot/epoch/block_root/block_version) from event.GetMeta().GetClient(). +// For now, zero-fill these fields. +func (b *canonicalBeaconBlockExecutionPayloadBidBatch) appendAdditionalData( + _ *xatu.DecoratedEvent, +) { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + b.BlockRoot.Append(nil) + b.BlockVersion.Append("") } diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation.go b/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation.go index 6050cbcb3..ea21b2ad4 100644 --- a/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation.go +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation.go @@ -2,16 +2,18 @@ package canonical import ( "fmt" + "time" "github.com/ethpandaops/xatu/pkg/consumoor/route" "github.com/ethpandaops/xatu/pkg/proto/xatu" ) -// TODO: Add the xatu.Event_* name(s) that route events to the canonical_beacon_block_payload_attestation table. -var canonicalBeaconBlockPayloadAttestationEventNames = []xatu.Event_Name{} +var canonicalBeaconBlockPayloadAttestationEventNames = []xatu.Event_Name{ + xatu.Event_BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION, +} func init() { - route, err := route.NewStaticRoute( + r, err := route.NewStaticRoute( canonicalBeaconBlockPayloadAttestationTableName, canonicalBeaconBlockPayloadAttestationEventNames, func() route.ColumnarBatch { return newcanonicalBeaconBlockPayloadAttestationBatch() }, @@ -22,7 +24,7 @@ func init() { return } - if err := route.Register(route); err != nil { + if err := route.Register(r); err != nil { route.RecordError(err) } } @@ -30,14 +32,60 @@ func init() { func (b *canonicalBeaconBlockPayloadAttestationBatch) FlattenTo( event *xatu.DecoratedEvent, ) error { - // TODO: Implement this method to flatten the event into columnar batch columns. - // The generated .gen.go file contains the available column fields for this table. - // - // Typical structure: - // b.appendRuntime(event) - // b.appendMetadata(event) - // b.appendPayload(event) - // b.rows++ - // return nil - return fmt.Errorf("canonicalBeaconBlockPayloadAttestation: FlattenTo not implemented") + if event == nil || event.GetEvent() == nil { + return nil + } + + if event.GetEthV2BeaconBlockPayloadAttestation() == nil { + return fmt.Errorf("nil eth_v2_beacon_block_payload_attestation payload: %w", route.ErrInvalidEvent) + } + + b.appendRuntime(event) + b.appendMetadata(event) + b.appendPayload(event) + b.appendAdditionalData(event) + b.rows++ + + return nil +} + +func (b *canonicalBeaconBlockPayloadAttestationBatch) appendRuntime(_ *xatu.DecoratedEvent) { + b.UpdatedDateTime.Append(time.Now()) +} + +func (b *canonicalBeaconBlockPayloadAttestationBatch) appendPayload(event *xatu.DecoratedEvent) { + attestation := event.GetEthV2BeaconBlockPayloadAttestation() + + data := attestation.GetData() + if data != nil { + b.BeaconBlockRoot.Append([]byte(data.GetBeaconBlockRoot())) + b.PayloadPresent.Append(data.GetPayloadPresent()) + b.BlobDataAvailable.Append(data.GetBlobDataAvailable()) + } else { + b.BeaconBlockRoot.Append(nil) + b.PayloadPresent.Append(false) + b.BlobDataAvailable.Append(false) + } + + b.AggregationBits.Append(attestation.GetAggregationBits()) + + // TODO: AttestingValidatorCount and Position are not available on the PayloadAttestation + // proto type. These require Additional*Data proto definitions to be populated by cannon. + // For now, zero-fill these fields. + b.AttestingValidatorCount.Append(0) + b.Position.Append(0) +} + +// TODO: Define AdditionalEthV2BeaconBlockPayloadAttestationData proto message to extract +// block identifier (slot/epoch/block_root/block_version) from event.GetMeta().GetClient(). +// For now, zero-fill these fields. +func (b *canonicalBeaconBlockPayloadAttestationBatch) appendAdditionalData( + _ *xatu.DecoratedEvent, +) { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + b.BlockRoot.Append(nil) + b.BlockVersion.Append("") } diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid.go index 7fbde4c97..321f0c2c7 100644 --- a/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid.go +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid.go @@ -2,16 +2,18 @@ package libp2p import ( "fmt" + "time" "github.com/ethpandaops/xatu/pkg/consumoor/route" "github.com/ethpandaops/xatu/pkg/proto/xatu" ) -// TODO: Add the xatu.Event_* name(s) that route events to the libp2p_gossipsub_execution_payload_bid table. -var libp2pGossipsubExecutionPayloadBidEventNames = []xatu.Event_Name{} +var libp2pGossipsubExecutionPayloadBidEventNames = []xatu.Event_Name{ + xatu.Event_LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_BID, +} func init() { - route, err := route.NewStaticRoute( + r, err := route.NewStaticRoute( libp2pGossipsubExecutionPayloadBidTableName, libp2pGossipsubExecutionPayloadBidEventNames, func() route.ColumnarBatch { return newlibp2pGossipsubExecutionPayloadBidBatch() }, @@ -22,7 +24,7 @@ func init() { return } - if err := route.Register(route); err != nil { + if err := route.Register(r); err != nil { route.RecordError(err) } } @@ -30,14 +32,96 @@ func init() { func (b *libp2pGossipsubExecutionPayloadBidBatch) FlattenTo( event *xatu.DecoratedEvent, ) error { - // TODO: Implement this method to flatten the event into columnar batch columns. - // The generated .gen.go file contains the available column fields for this table. - // - // Typical structure: - // b.appendRuntime(event) - // b.appendMetadata(event) - // b.appendPayload(event) - // b.rows++ - // return nil - return fmt.Errorf("libp2pGossipsubExecutionPayloadBid: FlattenTo not implemented") + if event == nil || event.GetEvent() == nil { + return nil + } + + if event.GetLibp2PTraceGossipsubExecutionPayloadBid() == nil { + return fmt.Errorf( + "nil libp2p_trace_gossipsub_execution_payload_bid payload: %w", + route.ErrInvalidEvent, + ) + } + + b.appendRuntime(event) + b.appendMetadata(event) + b.appendPayload(event) + b.appendClientAdditionalData(event) + b.rows++ + + return nil +} + +func (b *libp2pGossipsubExecutionPayloadBidBatch) appendRuntime(event *xatu.DecoratedEvent) { + b.UpdatedDateTime.Append(time.Now()) + + if ts := event.GetEvent().GetDateTime(); ts != nil { + b.EventDateTime.Append(ts.AsTime()) + } else { + b.EventDateTime.Append(time.Time{}) + } +} + +func (b *libp2pGossipsubExecutionPayloadBidBatch) appendPayload(event *xatu.DecoratedEvent) { + payload := event.GetLibp2PTraceGossipsubExecutionPayloadBid() + + if builderIndex := payload.GetBuilderIndex(); builderIndex != nil { + b.BuilderIndex.Append(builderIndex.GetValue()) + } else { + b.BuilderIndex.Append(0) + } + + b.BlockHash.Append([]byte(wrappedStringValue(payload.GetBlockHash()))) + b.ParentBlockHash.Append([]byte(wrappedStringValue(payload.GetParentBlockHash()))) + + if value := payload.GetValue(); value != nil { + b.Value.Append(value.GetValue()) + } else { + b.Value.Append(0) + } + + if executionPayment := payload.GetExecutionPayment(); executionPayment != nil { + b.ExecutionPayment.Append(executionPayment.GetValue()) + } else { + b.ExecutionPayment.Append(0) + } + + b.FeeRecipient.Append([]byte(wrappedStringValue(payload.GetFeeRecipient()))) + + if gasLimit := payload.GetGasLimit(); gasLimit != nil { + b.GasLimit.Append(gasLimit.GetValue()) + } else { + b.GasLimit.Append(0) + } + + if blobKzgCount := payload.GetBlobKzgCommitmentCount(); blobKzgCount != nil { + b.BlobKzgCommitmentCount.Append(blobKzgCount.GetValue()) + } else { + b.BlobKzgCommitmentCount.Append(0) + } +} + +// TODO: Define AdditionalLibp2pTraceGossipsubExecutionPayloadBidData proto message +// to extract slot/epoch/wallclock/propagation/peer/message/topic fields from +// event.GetMeta().GetClient(). For now, zero-fill these fields. +func (b *libp2pGossipsubExecutionPayloadBidBatch) appendClientAdditionalData( + _ *xatu.DecoratedEvent, +) { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + b.WallclockSlot.Append(0) + b.WallclockSlotStartDateTime.Append(time.Time{}) + b.WallclockEpoch.Append(0) + b.WallclockEpochStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Version.Append(4294967295) + b.MessageID.Append("") + b.MessageSize.Append(0) + b.TopicLayer.Append("") + b.TopicForkDigestValue.Append("") + b.TopicName.Append("") + b.TopicEncoding.Append("") + b.PeerIDUniqueKey.Append(0) } diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope.go index 55df55476..e830a5965 100644 --- a/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope.go +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope.go @@ -2,16 +2,18 @@ package libp2p import ( "fmt" + "time" "github.com/ethpandaops/xatu/pkg/consumoor/route" "github.com/ethpandaops/xatu/pkg/proto/xatu" ) -// TODO: Add the xatu.Event_* name(s) that route events to the libp2p_gossipsub_execution_payload_envelope table. -var libp2pGossipsubExecutionPayloadEnvelopeEventNames = []xatu.Event_Name{} +var libp2pGossipsubExecutionPayloadEnvelopeEventNames = []xatu.Event_Name{ + xatu.Event_LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_ENVELOPE, +} func init() { - route, err := route.NewStaticRoute( + r, err := route.NewStaticRoute( libp2pGossipsubExecutionPayloadEnvelopeTableName, libp2pGossipsubExecutionPayloadEnvelopeEventNames, func() route.ColumnarBatch { return newlibp2pGossipsubExecutionPayloadEnvelopeBatch() }, @@ -22,7 +24,7 @@ func init() { return } - if err := route.Register(route); err != nil { + if err := route.Register(r); err != nil { route.RecordError(err) } } @@ -30,14 +32,75 @@ func init() { func (b *libp2pGossipsubExecutionPayloadEnvelopeBatch) FlattenTo( event *xatu.DecoratedEvent, ) error { - // TODO: Implement this method to flatten the event into columnar batch columns. - // The generated .gen.go file contains the available column fields for this table. - // - // Typical structure: - // b.appendRuntime(event) - // b.appendMetadata(event) - // b.appendPayload(event) - // b.rows++ - // return nil - return fmt.Errorf("libp2pGossipsubExecutionPayloadEnvelope: FlattenTo not implemented") + if event == nil || event.GetEvent() == nil { + return nil + } + + if event.GetLibp2PTraceGossipsubExecutionPayloadEnvelope() == nil { + return fmt.Errorf( + "nil libp2p_trace_gossipsub_execution_payload_envelope payload: %w", + route.ErrInvalidEvent, + ) + } + + b.appendRuntime(event) + b.appendMetadata(event) + b.appendPayload(event) + b.appendClientAdditionalData(event) + b.rows++ + + return nil +} + +func (b *libp2pGossipsubExecutionPayloadEnvelopeBatch) appendRuntime( + event *xatu.DecoratedEvent, +) { + b.UpdatedDateTime.Append(time.Now()) + + if ts := event.GetEvent().GetDateTime(); ts != nil { + b.EventDateTime.Append(ts.AsTime()) + } else { + b.EventDateTime.Append(time.Time{}) + } +} + +func (b *libp2pGossipsubExecutionPayloadEnvelopeBatch) appendPayload( + event *xatu.DecoratedEvent, +) { + payload := event.GetLibp2PTraceGossipsubExecutionPayloadEnvelope() + + b.BlockRoot.Append([]byte(wrappedStringValue(payload.GetBeaconBlockRoot()))) + + if builderIndex := payload.GetBuilderIndex(); builderIndex != nil { + b.BuilderIndex.Append(builderIndex.GetValue()) + } else { + b.BuilderIndex.Append(0) + } + + b.BlockHash.Append([]byte(wrappedStringValue(payload.GetBlockHash()))) +} + +// TODO: Define AdditionalLibp2pTraceGossipsubExecutionPayloadEnvelopeData proto message +// to extract slot/epoch/wallclock/propagation/peer/message/topic fields from +// event.GetMeta().GetClient(). For now, zero-fill these fields. +func (b *libp2pGossipsubExecutionPayloadEnvelopeBatch) appendClientAdditionalData( + _ *xatu.DecoratedEvent, +) { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + b.WallclockSlot.Append(0) + b.WallclockSlotStartDateTime.Append(time.Time{}) + b.WallclockEpoch.Append(0) + b.WallclockEpochStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Version.Append(4294967295) + b.MessageID.Append("") + b.MessageSize.Append(0) + b.TopicLayer.Append("") + b.TopicForkDigestValue.Append("") + b.TopicName.Append("") + b.TopicEncoding.Append("") + b.PeerIDUniqueKey.Append(0) } diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message.go index 3147d1fe2..cc9d11622 100644 --- a/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message.go +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message.go @@ -2,16 +2,18 @@ package libp2p import ( "fmt" + "time" "github.com/ethpandaops/xatu/pkg/consumoor/route" "github.com/ethpandaops/xatu/pkg/proto/xatu" ) -// TODO: Add the xatu.Event_* name(s) that route events to the libp2p_gossipsub_payload_attestation_message table. -var libp2pGossipsubPayloadAttestationMessageEventNames = []xatu.Event_Name{} +var libp2pGossipsubPayloadAttestationMessageEventNames = []xatu.Event_Name{ + xatu.Event_LIBP2P_TRACE_GOSSIPSUB_PAYLOAD_ATTESTATION_MESSAGE, +} func init() { - route, err := route.NewStaticRoute( + r, err := route.NewStaticRoute( libp2pGossipsubPayloadAttestationMessageTableName, libp2pGossipsubPayloadAttestationMessageEventNames, func() route.ColumnarBatch { return newlibp2pGossipsubPayloadAttestationMessageBatch() }, @@ -22,7 +24,7 @@ func init() { return } - if err := route.Register(route); err != nil { + if err := route.Register(r); err != nil { route.RecordError(err) } } @@ -30,14 +32,86 @@ func init() { func (b *libp2pGossipsubPayloadAttestationMessageBatch) FlattenTo( event *xatu.DecoratedEvent, ) error { - // TODO: Implement this method to flatten the event into columnar batch columns. - // The generated .gen.go file contains the available column fields for this table. - // - // Typical structure: - // b.appendRuntime(event) - // b.appendMetadata(event) - // b.appendPayload(event) - // b.rows++ - // return nil - return fmt.Errorf("libp2pGossipsubPayloadAttestationMessage: FlattenTo not implemented") + if event == nil || event.GetEvent() == nil { + return nil + } + + if event.GetLibp2PTraceGossipsubPayloadAttestationMessage() == nil { + return fmt.Errorf( + "nil libp2p_trace_gossipsub_payload_attestation_message payload: %w", + route.ErrInvalidEvent, + ) + } + + b.appendRuntime(event) + b.appendMetadata(event) + b.appendPayload(event) + b.appendClientAdditionalData(event) + b.rows++ + + return nil +} + +func (b *libp2pGossipsubPayloadAttestationMessageBatch) appendRuntime( + event *xatu.DecoratedEvent, +) { + b.UpdatedDateTime.Append(time.Now()) + + if ts := event.GetEvent().GetDateTime(); ts != nil { + b.EventDateTime.Append(ts.AsTime()) + } else { + b.EventDateTime.Append(time.Time{}) + } +} + +//nolint:gosec // G115: proto uint64 values are bounded by ClickHouse column schema +func (b *libp2pGossipsubPayloadAttestationMessageBatch) appendPayload( + event *xatu.DecoratedEvent, +) { + payload := event.GetLibp2PTraceGossipsubPayloadAttestationMessage() + + if validatorIndex := payload.GetValidatorIndex(); validatorIndex != nil { + b.ValidatorIndex.Append(uint32(validatorIndex.GetValue())) + } else { + b.ValidatorIndex.Append(0) + } + + b.BeaconBlockRoot.Append([]byte(wrappedStringValue(payload.GetBeaconBlockRoot()))) + + if pp := payload.GetPayloadPresent(); pp != nil { + b.PayloadPresent.Append(pp.GetValue()) + } else { + b.PayloadPresent.Append(false) + } + + if bda := payload.GetBlobDataAvailable(); bda != nil { + b.BlobDataAvailable.Append(bda.GetValue()) + } else { + b.BlobDataAvailable.Append(false) + } +} + +// TODO: Define AdditionalLibp2pTraceGossipsubPayloadAttestationMessageData proto message +// to extract slot/epoch/wallclock/propagation/peer/message/topic fields from +// event.GetMeta().GetClient(). For now, zero-fill these fields. +func (b *libp2pGossipsubPayloadAttestationMessageBatch) appendClientAdditionalData( + _ *xatu.DecoratedEvent, +) { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + b.WallclockSlot.Append(0) + b.WallclockSlotStartDateTime.Append(time.Time{}) + b.WallclockEpoch.Append(0) + b.WallclockEpochStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Version.Append(4294967295) + b.MessageID.Append("") + b.MessageSize.Append(0) + b.TopicLayer.Append("") + b.TopicForkDigestValue.Append("") + b.TopicName.Append("") + b.TopicEncoding.Append("") + b.PeerIDUniqueKey.Append(0) } diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences.go index ac2beedfc..3342d9be4 100644 --- a/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences.go +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences.go @@ -2,16 +2,18 @@ package libp2p import ( "fmt" + "time" "github.com/ethpandaops/xatu/pkg/consumoor/route" "github.com/ethpandaops/xatu/pkg/proto/xatu" ) -// TODO: Add the xatu.Event_* name(s) that route events to the libp2p_gossipsub_proposer_preferences table. -var libp2pGossipsubProposerPreferencesEventNames = []xatu.Event_Name{} +var libp2pGossipsubProposerPreferencesEventNames = []xatu.Event_Name{ + xatu.Event_LIBP2P_TRACE_GOSSIPSUB_PROPOSER_PREFERENCES, +} func init() { - route, err := route.NewStaticRoute( + r, err := route.NewStaticRoute( libp2pGossipsubProposerPreferencesTableName, libp2pGossipsubProposerPreferencesEventNames, func() route.ColumnarBatch { return newlibp2pGossipsubProposerPreferencesBatch() }, @@ -22,7 +24,7 @@ func init() { return } - if err := route.Register(route); err != nil { + if err := route.Register(r); err != nil { route.RecordError(err) } } @@ -30,14 +32,76 @@ func init() { func (b *libp2pGossipsubProposerPreferencesBatch) FlattenTo( event *xatu.DecoratedEvent, ) error { - // TODO: Implement this method to flatten the event into columnar batch columns. - // The generated .gen.go file contains the available column fields for this table. - // - // Typical structure: - // b.appendRuntime(event) - // b.appendMetadata(event) - // b.appendPayload(event) - // b.rows++ - // return nil - return fmt.Errorf("libp2pGossipsubProposerPreferences: FlattenTo not implemented") + if event == nil || event.GetEvent() == nil { + return nil + } + + if event.GetLibp2PTraceGossipsubProposerPreferences() == nil { + return fmt.Errorf( + "nil libp2p_trace_gossipsub_proposer_preferences payload: %w", + route.ErrInvalidEvent, + ) + } + + b.appendRuntime(event) + b.appendMetadata(event) + b.appendPayload(event) + b.appendClientAdditionalData(event) + b.rows++ + + return nil +} + +func (b *libp2pGossipsubProposerPreferencesBatch) appendRuntime(event *xatu.DecoratedEvent) { + b.UpdatedDateTime.Append(time.Now()) + + if ts := event.GetEvent().GetDateTime(); ts != nil { + b.EventDateTime.Append(ts.AsTime()) + } else { + b.EventDateTime.Append(time.Time{}) + } +} + +//nolint:gosec // G115: proto uint64 values are bounded by ClickHouse column schema +func (b *libp2pGossipsubProposerPreferencesBatch) appendPayload(event *xatu.DecoratedEvent) { + payload := event.GetLibp2PTraceGossipsubProposerPreferences() + + if validatorIndex := payload.GetValidatorIndex(); validatorIndex != nil { + b.ValidatorIndex.Append(uint32(validatorIndex.GetValue())) + } else { + b.ValidatorIndex.Append(0) + } + + b.FeeRecipient.Append([]byte(wrappedStringValue(payload.GetFeeRecipient()))) + + if gasLimit := payload.GetGasLimit(); gasLimit != nil { + b.GasLimit.Append(gasLimit.GetValue()) + } else { + b.GasLimit.Append(0) + } +} + +// TODO: Define AdditionalLibp2pTraceGossipsubProposerPreferencesData proto message +// to extract slot/epoch/wallclock/propagation/peer/message/topic fields from +// event.GetMeta().GetClient(). For now, zero-fill these fields. +func (b *libp2pGossipsubProposerPreferencesBatch) appendClientAdditionalData( + _ *xatu.DecoratedEvent, +) { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + b.WallclockSlot.Append(0) + b.WallclockSlotStartDateTime.Append(time.Time{}) + b.WallclockEpoch.Append(0) + b.WallclockEpochStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Version.Append(4294967295) + b.MessageID.Append("") + b.MessageSize.Append(0) + b.TopicLayer.Append("") + b.TopicForkDigestValue.Append("") + b.TopicName.Append("") + b.TopicEncoding.Append("") + b.PeerIDUniqueKey.Append(0) } diff --git a/pkg/consumoor/route/routes_test.go b/pkg/consumoor/route/routes_test.go index 3067f238b..0fa575533 100644 --- a/pkg/consumoor/route/routes_test.go +++ b/pkg/consumoor/route/routes_test.go @@ -35,18 +35,6 @@ func TestRegistryCoversAllKnownEvents(t *testing.T) { xatu.Event_BEACON_API_ETH_V1_EVENTS_VOLUNTARY_EXIT: "deprecated in favor of V2 event", xatu.Event_BEACON_API_ETH_V2_BEACON_BLOCK: "deprecated in favor of V2 event", xatu.Event_BEACON_P2P_ATTESTATION: "legacy event path not consumed by consumoor", - - // EIP-7732 ePBS: consumoor routes pending (proto types + ClickHouse tables are ready) - xatu.Event_BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD: "ePBS: consumoor route pending upstream go-eth2-client", - xatu.Event_BEACON_API_ETH_V1_EVENTS_PAYLOAD_ATTESTATION: "ePBS: consumoor route pending upstream go-eth2-client", - xatu.Event_BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD_BID: "ePBS: consumoor route pending upstream go-eth2-client", - xatu.Event_BEACON_API_ETH_V1_EVENTS_PROPOSER_PREFERENCES: "ePBS: consumoor route pending upstream go-eth2-client", - xatu.Event_BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION: "ePBS: consumoor route pending upstream go-eth2-client", - xatu.Event_BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID: "ePBS: consumoor route pending upstream go-eth2-client", - xatu.Event_LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_ENVELOPE: "ePBS: consumoor route pending upstream go-eth2-client", - xatu.Event_LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_BID: "ePBS: consumoor route pending upstream go-eth2-client", - xatu.Event_LIBP2P_TRACE_GOSSIPSUB_PAYLOAD_ATTESTATION_MESSAGE: "ePBS: consumoor route pending upstream go-eth2-client", - xatu.Event_LIBP2P_TRACE_GOSSIPSUB_PROPOSER_PREFERENCES: "ePBS: consumoor route pending upstream go-eth2-client", } covered := make(map[xatu.Event_Name]struct{}, 128) From f0c3f84b7273a98fb82b471fda40feaba6b5a016 Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Thu, 26 Mar 2026 13:52:55 +1000 Subject: [PATCH 21/23] feat: ebps wiring wip --- pkg/proto/xatu/coordinator.pb.go | 1028 +- pkg/proto/xatu/coordinator.proto | 19 + pkg/proto/xatu/event_ingester.pb.go | 10376 +++++++++++--------- pkg/proto/xatu/event_ingester.proto | 118 + pkg/server/persistence/cannon/location.go | 48 + 5 files changed, 6717 insertions(+), 4872 deletions(-) diff --git a/pkg/proto/xatu/coordinator.pb.go b/pkg/proto/xatu/coordinator.pb.go index 5a90cb222..b7e9fce1c 100644 --- a/pkg/proto/xatu/coordinator.pb.go +++ b/pkg/proto/xatu/coordinator.pb.go @@ -40,6 +40,9 @@ const ( CannonType_BEACON_API_ETH_V1_BEACON_SYNC_COMMITTEE CannonType = 14 CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_SYNC_AGGREGATE CannonType = 15 CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST CannonType = 16 + // EIP-7732 ePBS cannon types + CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION CannonType = 17 + CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID CannonType = 18 ) // Enum value maps for CannonType. @@ -61,6 +64,8 @@ var ( 14: "BEACON_API_ETH_V1_BEACON_SYNC_COMMITTEE", 15: "BEACON_API_ETH_V2_BEACON_BLOCK_SYNC_AGGREGATE", 16: "BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST", + 17: "BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION", + 18: "BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID", } CannonType_value = map[string]int32{ "BEACON_API_ETH_V2_BEACON_BLOCK_VOLUNTARY_EXIT": 0, @@ -79,6 +84,8 @@ var ( "BEACON_API_ETH_V1_BEACON_SYNC_COMMITTEE": 14, "BEACON_API_ETH_V2_BEACON_BLOCK_SYNC_AGGREGATE": 15, "BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST": 16, + "BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION": 17, + "BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID": 18, } ) @@ -2410,6 +2417,101 @@ func (x *CannonLocationEthV2BeaconBlockAccessList) GetBackfillingCheckpointMarke return nil } +// EIP-7732 ePBS cannon location types +type CannonLocationEthV2BeaconBlockPayloadAttestation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BackfillingCheckpointMarker *BackfillingCheckpointMarker `protobuf:"bytes,1,opt,name=backfilling_checkpoint_marker,json=backfillingCheckpointMarker,proto3" json:"backfilling_checkpoint_marker,omitempty"` +} + +func (x *CannonLocationEthV2BeaconBlockPayloadAttestation) Reset() { + *x = CannonLocationEthV2BeaconBlockPayloadAttestation{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CannonLocationEthV2BeaconBlockPayloadAttestation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CannonLocationEthV2BeaconBlockPayloadAttestation) ProtoMessage() {} + +func (x *CannonLocationEthV2BeaconBlockPayloadAttestation) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[42] + 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 CannonLocationEthV2BeaconBlockPayloadAttestation.ProtoReflect.Descriptor instead. +func (*CannonLocationEthV2BeaconBlockPayloadAttestation) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{42} +} + +func (x *CannonLocationEthV2BeaconBlockPayloadAttestation) GetBackfillingCheckpointMarker() *BackfillingCheckpointMarker { + if x != nil { + return x.BackfillingCheckpointMarker + } + return nil +} + +type CannonLocationEthV2BeaconBlockExecutionPayloadBid struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BackfillingCheckpointMarker *BackfillingCheckpointMarker `protobuf:"bytes,1,opt,name=backfilling_checkpoint_marker,json=backfillingCheckpointMarker,proto3" json:"backfilling_checkpoint_marker,omitempty"` +} + +func (x *CannonLocationEthV2BeaconBlockExecutionPayloadBid) Reset() { + *x = CannonLocationEthV2BeaconBlockExecutionPayloadBid{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CannonLocationEthV2BeaconBlockExecutionPayloadBid) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CannonLocationEthV2BeaconBlockExecutionPayloadBid) ProtoMessage() {} + +func (x *CannonLocationEthV2BeaconBlockExecutionPayloadBid) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[43] + 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 CannonLocationEthV2BeaconBlockExecutionPayloadBid.ProtoReflect.Descriptor instead. +func (*CannonLocationEthV2BeaconBlockExecutionPayloadBid) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{43} +} + +func (x *CannonLocationEthV2BeaconBlockExecutionPayloadBid) GetBackfillingCheckpointMarker() *BackfillingCheckpointMarker { + if x != nil { + return x.BackfillingCheckpointMarker + } + return nil +} + type CannonLocation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2435,13 +2537,15 @@ type CannonLocation struct { // *CannonLocation_EthV1BeaconSyncCommittee // *CannonLocation_EthV2BeaconBlockSyncAggregate // *CannonLocation_EthV2BeaconBlockAccessList + // *CannonLocation_EthV2BeaconBlockPayloadAttestation + // *CannonLocation_EthV2BeaconBlockExecutionPayloadBid Data isCannonLocation_Data `protobuf_oneof:"Data"` } func (x *CannonLocation) Reset() { *x = CannonLocation{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[42] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2454,7 +2558,7 @@ func (x *CannonLocation) String() string { func (*CannonLocation) ProtoMessage() {} func (x *CannonLocation) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[42] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2467,7 +2571,7 @@ func (x *CannonLocation) ProtoReflect() protoreflect.Message { // Deprecated: Use CannonLocation.ProtoReflect.Descriptor instead. func (*CannonLocation) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{42} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{44} } func (x *CannonLocation) GetNetworkId() string { @@ -2603,6 +2707,20 @@ func (x *CannonLocation) GetEthV2BeaconBlockAccessList() *CannonLocationEthV2Bea return nil } +func (x *CannonLocation) GetEthV2BeaconBlockPayloadAttestation() *CannonLocationEthV2BeaconBlockPayloadAttestation { + if x, ok := x.GetData().(*CannonLocation_EthV2BeaconBlockPayloadAttestation); ok { + return x.EthV2BeaconBlockPayloadAttestation + } + return nil +} + +func (x *CannonLocation) GetEthV2BeaconBlockExecutionPayloadBid() *CannonLocationEthV2BeaconBlockExecutionPayloadBid { + if x, ok := x.GetData().(*CannonLocation_EthV2BeaconBlockExecutionPayloadBid); ok { + return x.EthV2BeaconBlockExecutionPayloadBid + } + return nil +} + type isCannonLocation_Data interface { isCannonLocation_Data() } @@ -2673,6 +2791,15 @@ type CannonLocation_EthV2BeaconBlockAccessList struct { EthV2BeaconBlockAccessList *CannonLocationEthV2BeaconBlockAccessList `protobuf:"bytes,19,opt,name=eth_v2_beacon_block_access_list,json=BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST,proto3,oneof"` } +type CannonLocation_EthV2BeaconBlockPayloadAttestation struct { + // EIP-7732 ePBS + EthV2BeaconBlockPayloadAttestation *CannonLocationEthV2BeaconBlockPayloadAttestation `protobuf:"bytes,20,opt,name=eth_v2_beacon_block_payload_attestation,json=BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION,proto3,oneof"` +} + +type CannonLocation_EthV2BeaconBlockExecutionPayloadBid struct { + EthV2BeaconBlockExecutionPayloadBid *CannonLocationEthV2BeaconBlockExecutionPayloadBid `protobuf:"bytes,21,opt,name=eth_v2_beacon_block_execution_payload_bid,json=BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID,proto3,oneof"` +} + func (*CannonLocation_EthV2BeaconBlockVoluntaryExit) isCannonLocation_Data() {} func (*CannonLocation_EthV2BeaconBlockProposerSlashing) isCannonLocation_Data() {} @@ -2705,6 +2832,10 @@ func (*CannonLocation_EthV2BeaconBlockSyncAggregate) isCannonLocation_Data() {} func (*CannonLocation_EthV2BeaconBlockAccessList) isCannonLocation_Data() {} +func (*CannonLocation_EthV2BeaconBlockPayloadAttestation) isCannonLocation_Data() {} + +func (*CannonLocation_EthV2BeaconBlockExecutionPayloadBid) isCannonLocation_Data() {} + type GetCannonLocationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2717,7 +2848,7 @@ type GetCannonLocationRequest struct { func (x *GetCannonLocationRequest) Reset() { *x = GetCannonLocationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[43] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2730,7 +2861,7 @@ func (x *GetCannonLocationRequest) String() string { func (*GetCannonLocationRequest) ProtoMessage() {} func (x *GetCannonLocationRequest) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[43] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2743,7 +2874,7 @@ func (x *GetCannonLocationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCannonLocationRequest.ProtoReflect.Descriptor instead. func (*GetCannonLocationRequest) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{43} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{45} } func (x *GetCannonLocationRequest) GetNetworkId() string { @@ -2771,7 +2902,7 @@ type GetCannonLocationResponse struct { func (x *GetCannonLocationResponse) Reset() { *x = GetCannonLocationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[44] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2784,7 +2915,7 @@ func (x *GetCannonLocationResponse) String() string { func (*GetCannonLocationResponse) ProtoMessage() {} func (x *GetCannonLocationResponse) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[44] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2797,7 +2928,7 @@ func (x *GetCannonLocationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCannonLocationResponse.ProtoReflect.Descriptor instead. func (*GetCannonLocationResponse) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{44} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{46} } func (x *GetCannonLocationResponse) GetLocation() *CannonLocation { @@ -2818,7 +2949,7 @@ type UpsertCannonLocationRequest struct { func (x *UpsertCannonLocationRequest) Reset() { *x = UpsertCannonLocationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[45] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2831,7 +2962,7 @@ func (x *UpsertCannonLocationRequest) String() string { func (*UpsertCannonLocationRequest) ProtoMessage() {} func (x *UpsertCannonLocationRequest) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[45] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2844,7 +2975,7 @@ func (x *UpsertCannonLocationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpsertCannonLocationRequest.ProtoReflect.Descriptor instead. func (*UpsertCannonLocationRequest) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{45} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{47} } func (x *UpsertCannonLocationRequest) GetLocation() *CannonLocation { @@ -2863,7 +2994,7 @@ type UpsertCannonLocationResponse struct { func (x *UpsertCannonLocationResponse) Reset() { *x = UpsertCannonLocationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[46] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2876,7 +3007,7 @@ func (x *UpsertCannonLocationResponse) String() string { func (*UpsertCannonLocationResponse) ProtoMessage() {} func (x *UpsertCannonLocationResponse) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[46] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2889,7 +3020,7 @@ func (x *UpsertCannonLocationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpsertCannonLocationResponse.ProtoReflect.Descriptor instead. func (*UpsertCannonLocationResponse) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{46} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{48} } // Track current slot for consistency processes @@ -2906,7 +3037,7 @@ type RelayMonitorSlotMarker struct { func (x *RelayMonitorSlotMarker) Reset() { *x = RelayMonitorSlotMarker{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[47] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2919,7 +3050,7 @@ func (x *RelayMonitorSlotMarker) String() string { func (*RelayMonitorSlotMarker) ProtoMessage() {} func (x *RelayMonitorSlotMarker) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[47] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2932,7 +3063,7 @@ func (x *RelayMonitorSlotMarker) ProtoReflect() protoreflect.Message { // Deprecated: Use RelayMonitorSlotMarker.ProtoReflect.Descriptor instead. func (*RelayMonitorSlotMarker) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{47} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{49} } func (x *RelayMonitorSlotMarker) GetCurrentSlot() uint64 { @@ -2953,7 +3084,7 @@ type RelayMonitorLocationBidTrace struct { func (x *RelayMonitorLocationBidTrace) Reset() { *x = RelayMonitorLocationBidTrace{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[48] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2966,7 +3097,7 @@ func (x *RelayMonitorLocationBidTrace) String() string { func (*RelayMonitorLocationBidTrace) ProtoMessage() {} func (x *RelayMonitorLocationBidTrace) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[48] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2979,7 +3110,7 @@ func (x *RelayMonitorLocationBidTrace) ProtoReflect() protoreflect.Message { // Deprecated: Use RelayMonitorLocationBidTrace.ProtoReflect.Descriptor instead. func (*RelayMonitorLocationBidTrace) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{48} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{50} } func (x *RelayMonitorLocationBidTrace) GetSlotMarker() *RelayMonitorSlotMarker { @@ -3000,7 +3131,7 @@ type RelayMonitorLocationPayloadDelivered struct { func (x *RelayMonitorLocationPayloadDelivered) Reset() { *x = RelayMonitorLocationPayloadDelivered{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[49] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3013,7 +3144,7 @@ func (x *RelayMonitorLocationPayloadDelivered) String() string { func (*RelayMonitorLocationPayloadDelivered) ProtoMessage() {} func (x *RelayMonitorLocationPayloadDelivered) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[49] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3026,7 +3157,7 @@ func (x *RelayMonitorLocationPayloadDelivered) ProtoReflect() protoreflect.Messa // Deprecated: Use RelayMonitorLocationPayloadDelivered.ProtoReflect.Descriptor instead. func (*RelayMonitorLocationPayloadDelivered) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{49} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{51} } func (x *RelayMonitorLocationPayloadDelivered) GetSlotMarker() *RelayMonitorSlotMarker { @@ -3055,7 +3186,7 @@ type RelayMonitorLocation struct { func (x *RelayMonitorLocation) Reset() { *x = RelayMonitorLocation{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[50] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3068,7 +3199,7 @@ func (x *RelayMonitorLocation) String() string { func (*RelayMonitorLocation) ProtoMessage() {} func (x *RelayMonitorLocation) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[50] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3081,7 +3212,7 @@ func (x *RelayMonitorLocation) ProtoReflect() protoreflect.Message { // Deprecated: Use RelayMonitorLocation.ProtoReflect.Descriptor instead. func (*RelayMonitorLocation) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{50} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{52} } func (x *RelayMonitorLocation) GetMetaNetworkName() string { @@ -3163,7 +3294,7 @@ type GetRelayMonitorLocationRequest struct { func (x *GetRelayMonitorLocationRequest) Reset() { *x = GetRelayMonitorLocationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[51] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3176,7 +3307,7 @@ func (x *GetRelayMonitorLocationRequest) String() string { func (*GetRelayMonitorLocationRequest) ProtoMessage() {} func (x *GetRelayMonitorLocationRequest) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[51] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3189,7 +3320,7 @@ func (x *GetRelayMonitorLocationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRelayMonitorLocationRequest.ProtoReflect.Descriptor instead. func (*GetRelayMonitorLocationRequest) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{51} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{53} } func (x *GetRelayMonitorLocationRequest) GetMetaNetworkName() string { @@ -3231,7 +3362,7 @@ type GetRelayMonitorLocationResponse struct { func (x *GetRelayMonitorLocationResponse) Reset() { *x = GetRelayMonitorLocationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[52] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3244,7 +3375,7 @@ func (x *GetRelayMonitorLocationResponse) String() string { func (*GetRelayMonitorLocationResponse) ProtoMessage() {} func (x *GetRelayMonitorLocationResponse) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[52] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3257,7 +3388,7 @@ func (x *GetRelayMonitorLocationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRelayMonitorLocationResponse.ProtoReflect.Descriptor instead. func (*GetRelayMonitorLocationResponse) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{52} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{54} } func (x *GetRelayMonitorLocationResponse) GetLocation() *RelayMonitorLocation { @@ -3278,7 +3409,7 @@ type UpsertRelayMonitorLocationRequest struct { func (x *UpsertRelayMonitorLocationRequest) Reset() { *x = UpsertRelayMonitorLocationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[53] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3291,7 +3422,7 @@ func (x *UpsertRelayMonitorLocationRequest) String() string { func (*UpsertRelayMonitorLocationRequest) ProtoMessage() {} func (x *UpsertRelayMonitorLocationRequest) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[53] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3304,7 +3435,7 @@ func (x *UpsertRelayMonitorLocationRequest) ProtoReflect() protoreflect.Message // Deprecated: Use UpsertRelayMonitorLocationRequest.ProtoReflect.Descriptor instead. func (*UpsertRelayMonitorLocationRequest) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{53} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{55} } func (x *UpsertRelayMonitorLocationRequest) GetLocation() *RelayMonitorLocation { @@ -3323,7 +3454,7 @@ type UpsertRelayMonitorLocationResponse struct { func (x *UpsertRelayMonitorLocationResponse) Reset() { *x = UpsertRelayMonitorLocationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[54] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3336,7 +3467,7 @@ func (x *UpsertRelayMonitorLocationResponse) String() string { func (*UpsertRelayMonitorLocationResponse) ProtoMessage() {} func (x *UpsertRelayMonitorLocationResponse) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[54] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3349,7 +3480,7 @@ func (x *UpsertRelayMonitorLocationResponse) ProtoReflect() protoreflect.Message // Deprecated: Use UpsertRelayMonitorLocationResponse.ProtoReflect.Descriptor instead. func (*UpsertRelayMonitorLocationResponse) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{54} + return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{56} } type ExecutionNodeStatus_Capability struct { @@ -3364,7 +3495,7 @@ type ExecutionNodeStatus_Capability struct { func (x *ExecutionNodeStatus_Capability) Reset() { *x = ExecutionNodeStatus_Capability{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[55] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3377,7 +3508,7 @@ func (x *ExecutionNodeStatus_Capability) String() string { func (*ExecutionNodeStatus_Capability) ProtoMessage() {} func (x *ExecutionNodeStatus_Capability) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[55] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3419,7 +3550,7 @@ type ExecutionNodeStatus_ForkID struct { func (x *ExecutionNodeStatus_ForkID) Reset() { *x = ExecutionNodeStatus_ForkID{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[56] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3432,7 +3563,7 @@ func (x *ExecutionNodeStatus_ForkID) String() string { func (*ExecutionNodeStatus_ForkID) ProtoMessage() {} func (x *ExecutionNodeStatus_ForkID) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[56] + mi := &file_pkg_proto_xatu_coordinator_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3836,283 +3967,330 @@ var file_pkg_proto_xatu_coordinator_proto_rawDesc = []byte{ 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, - 0x22, 0xed, 0x11, 0x0a, 0x0e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x49, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, - 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, - 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6e, - 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, - 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x12, 0x97, 0x01, 0x0a, 0x25, 0x65, 0x74, - 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, - 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, - 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x48, - 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, - 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, - 0x49, 0x4e, 0x47, 0x12, 0x7a, 0x0a, 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, - 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x12, - 0x97, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x34, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, - 0x73, 0x68, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, 0x52, - 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0xa7, 0x01, 0x0a, 0x2b, 0x65, 0x74, - 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6c, 0x73, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x36, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, - 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, - 0x4e, 0x47, 0x45, 0x12, 0xa3, 0x01, 0x0a, 0x29, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, - 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, - 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x48, 0x00, 0x52, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, - 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x83, 0x01, 0x0a, 0x1e, 0x65, 0x74, - 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, - 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x61, 0x6c, 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, 0x4c, 0x12, - 0x63, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x77, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, - 0x61, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, - 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, - 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x73, 0x0a, - 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x75, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, - 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x48, - 0x00, 0x52, 0x1f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, - 0x54, 0x59, 0x12, 0xa6, 0x01, 0x0a, 0x2a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6c, 0x61, 0x62, 0x6f, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, - 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, - 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6c, 0x61, - 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, - 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x72, 0x0a, 0x18, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x12, - 0x6f, 0x0a, 0x17, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x48, 0x00, 0x52, 0x22, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, - 0x12, 0x7d, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, - 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, - 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x74, 0x65, 0x65, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, - 0x8e, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x48, - 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, - 0x4b, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, - 0x12, 0x85, 0x01, 0x0a, 0x1f, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, - 0x6c, 0x69, 0x73, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x43, 0x43, - 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x42, 0x06, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, - 0x22, 0x5f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x22, 0x99, 0x01, 0x0a, 0x30, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x65, 0x0a, 0x1d, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, + 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x22, 0x9a, 0x01, 0x0a, + 0x31, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, + 0x69, 0x64, 0x12, 0x65, 0x0a, 0x1d, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1b, 0x62, 0x61, + 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x22, 0xb2, 0x14, 0x0a, 0x0e, 0x43, 0x61, + 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x22, 0x4d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, - 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x4f, 0x0a, 0x1b, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, - 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x30, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x1e, 0x0a, 0x1c, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, - 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x3b, 0x0a, 0x16, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, - 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x6c, 0x6f, 0x74, 0x22, 0x5d, - 0x0a, 0x1c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x12, 0x3d, - 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, - 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x72, 0x52, 0x0a, 0x73, 0x6c, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x22, 0x65, 0x0a, - 0x24, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x69, - 0x76, 0x65, 0x72, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x53, 0x6c, - 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x0a, 0x73, 0x6c, 0x6f, 0x74, 0x4d, 0x61, - 0x72, 0x6b, 0x65, 0x72, 0x22, 0xfb, 0x02, 0x0a, 0x14, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, - 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, - 0x11, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x4e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x65, 0x74, - 0x61, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, - 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x50, - 0x0a, 0x09, 0x62, 0x69, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, - 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x64, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x17, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x4d, - 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x42, 0x49, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x12, 0x68, 0x0a, 0x11, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x69, - 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, - 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x1f, 0x52, 0x45, 0x4c, 0x41, 0x59, - 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, - 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x42, 0x06, 0x0a, 0x04, 0x44, 0x61, - 0x74, 0x61, 0x22, 0xc1, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, - 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, - 0x61, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, - 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x59, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, - 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x5b, 0x0a, 0x21, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, - 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x24, - 0x0a, 0x22, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, - 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0xb3, 0x06, 0x0a, 0x0a, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, - 0x45, 0x58, 0x49, 0x54, 0x10, 0x00, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, - 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x2a, 0x0a, 0x26, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, - 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x10, 0x02, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, + 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, + 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, + 0x74, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, + 0x49, 0x54, 0x12, 0x97, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, + 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, - 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x3a, - 0x0a, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, + 0x53, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0x7a, 0x0a, 0x1b, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x48, 0x00, + 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x12, 0x97, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, + 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, + 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x48, 0x00, + 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x04, 0x12, 0x38, 0x0a, 0x34, 0x42, 0x45, + 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, + 0x4e, 0x47, 0x12, 0xa7, 0x01, 0x0a, 0x2b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x6c, 0x73, 0x5f, 0x74, + 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, + 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6c, + 0x73, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x48, 0x00, 0x52, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, + 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, 0x43, + 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x12, 0xa3, 0x01, 0x0a, + 0x29, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, - 0x4c, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x07, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, - 0x10, 0x09, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, - 0x5f, 0x44, 0x55, 0x54, 0x59, 0x10, 0x0a, 0x12, 0x39, 0x0a, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, - 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x10, 0x0b, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, - 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x10, 0x0c, 0x12, 0x26, 0x0a, 0x22, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, - 0x45, 0x10, 0x0d, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x4f, 0x4e, 0x12, 0x83, 0x01, 0x0a, 0x1e, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x29, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, + 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, 0x4c, 0x12, 0x63, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, + 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, + 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, + 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x1e, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x77, 0x0a, + 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, + 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, + 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, + 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x73, 0x0a, 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, + 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, + 0x5f, 0x64, 0x75, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1f, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x50, 0x52, + 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x12, 0xa6, 0x01, 0x0a, 0x2a, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x39, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x35, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, + 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x72, 0x0a, 0x18, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, + 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, + 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, + 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x12, 0x6f, 0x0a, 0x17, 0x65, 0x74, 0x68, 0x5f, + 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x74, 0x65, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x74, 0x65, 0x65, 0x48, 0x00, 0x52, 0x22, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x10, 0x0e, - 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, - 0x45, 0x10, 0x0f, 0x12, 0x2e, 0x0a, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, 0x7d, 0x0a, 0x1c, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x48, 0x00, 0x52, + 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, + 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, 0x8e, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, + 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, + 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x79, 0x6e, 0x63, 0x41, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, + 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x12, 0x85, 0x01, 0x0a, 0x1f, 0x65, 0x74, + 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, + 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, - 0x54, 0x10, 0x10, 0x22, 0x04, 0x08, 0x08, 0x10, 0x08, 0x2a, 0x1f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x54, 0x12, 0x9d, 0x01, 0x0a, 0x27, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, + 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x32, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x41, + 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x12, 0xa2, 0x01, 0x0a, 0x29, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x69, 0x64, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, + 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, + 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x69, 0x64, 0x48, 0x00, + 0x52, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, + 0x41, 0x44, 0x5f, 0x42, 0x49, 0x44, 0x42, 0x06, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x5f, + 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x4d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x08, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4f, + 0x0a, 0x1b, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, + 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x1e, 0x0a, 0x1c, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x3b, 0x0a, 0x16, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x53, + 0x6c, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x6c, 0x6f, 0x74, 0x22, 0x5d, 0x0a, 0x1c, + 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, + 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, + 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, + 0x0a, 0x73, 0x6c, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x22, 0x65, 0x0a, 0x24, 0x52, + 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, + 0x72, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x53, 0x6c, 0x6f, 0x74, + 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x0a, 0x73, 0x6c, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x65, 0x72, 0x22, 0xfb, 0x02, 0x0a, 0x14, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, + 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x6d, + 0x65, 0x74, 0x61, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x61, 0x5f, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, + 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x50, 0x0a, 0x09, + 0x62, 0x69, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, + 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x64, 0x54, 0x72, + 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x17, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x4d, 0x4f, 0x4e, + 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x42, 0x49, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x12, 0x68, + 0x0a, 0x11, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, + 0x72, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x69, + 0x76, 0x65, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x1f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x4d, + 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, + 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x42, 0x06, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, + 0x22, 0xc1, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x6d, 0x65, 0x74, 0x61, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x28, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x6c, + 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, + 0x65, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x52, 0x65, + 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x59, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, + 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x5b, 0x0a, 0x21, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, + 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x52, 0x65, + 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x24, 0x0a, 0x22, + 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, + 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2a, 0xa5, 0x07, 0x0a, 0x0a, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, + 0x49, 0x54, 0x10, 0x00, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, + 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, + 0x4f, 0x53, 0x49, 0x54, 0x10, 0x02, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, + 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x3a, 0x0a, 0x36, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, + 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, + 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x04, 0x12, 0x38, 0x0a, 0x34, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, + 0x10, 0x05, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, + 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, 0x4c, 0x10, + 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x10, 0x07, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x09, + 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, + 0x55, 0x54, 0x59, 0x10, 0x0a, 0x12, 0x39, 0x0a, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, + 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0b, + 0x12, 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, + 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x10, 0x0c, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x10, + 0x0d, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x53, 0x59, + 0x4e, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x10, 0x0e, 0x12, 0x31, + 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, + 0x0f, 0x12, 0x2e, 0x0a, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, + 0x10, 0x12, 0x36, 0x0a, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, + 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x11, 0x12, 0x38, 0x0a, 0x34, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, + 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x49, + 0x44, 0x10, 0x12, 0x22, 0x04, 0x08, 0x08, 0x10, 0x08, 0x2a, 0x1f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x50, 0x52, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x2a, 0x54, 0x0a, 0x10, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, @@ -4251,7 +4429,7 @@ func file_pkg_proto_xatu_coordinator_proto_rawDescGZIP() []byte { } var file_pkg_proto_xatu_coordinator_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_pkg_proto_xatu_coordinator_proto_msgTypes = make([]protoimpl.MessageInfo, 57) +var file_pkg_proto_xatu_coordinator_proto_msgTypes = make([]protoimpl.MessageInfo, 59) var file_pkg_proto_xatu_coordinator_proto_goTypes = []any{ (CannonType)(0), // 0: xatu.CannonType (RelayMonitorType)(0), // 1: xatu.RelayMonitorType @@ -4297,30 +4475,32 @@ var file_pkg_proto_xatu_coordinator_proto_goTypes = []any{ (*CannonLocationEthV1BeaconSyncCommittee)(nil), // 41: xatu.CannonLocationEthV1BeaconSyncCommittee (*CannonLocationEthV2BeaconBlockSyncAggregate)(nil), // 42: xatu.CannonLocationEthV2BeaconBlockSyncAggregate (*CannonLocationEthV2BeaconBlockAccessList)(nil), // 43: xatu.CannonLocationEthV2BeaconBlockAccessList - (*CannonLocation)(nil), // 44: xatu.CannonLocation - (*GetCannonLocationRequest)(nil), // 45: xatu.GetCannonLocationRequest - (*GetCannonLocationResponse)(nil), // 46: xatu.GetCannonLocationResponse - (*UpsertCannonLocationRequest)(nil), // 47: xatu.UpsertCannonLocationRequest - (*UpsertCannonLocationResponse)(nil), // 48: xatu.UpsertCannonLocationResponse - (*RelayMonitorSlotMarker)(nil), // 49: xatu.RelayMonitorSlotMarker - (*RelayMonitorLocationBidTrace)(nil), // 50: xatu.RelayMonitorLocationBidTrace - (*RelayMonitorLocationPayloadDelivered)(nil), // 51: xatu.RelayMonitorLocationPayloadDelivered - (*RelayMonitorLocation)(nil), // 52: xatu.RelayMonitorLocation - (*GetRelayMonitorLocationRequest)(nil), // 53: xatu.GetRelayMonitorLocationRequest - (*GetRelayMonitorLocationResponse)(nil), // 54: xatu.GetRelayMonitorLocationResponse - (*UpsertRelayMonitorLocationRequest)(nil), // 55: xatu.UpsertRelayMonitorLocationRequest - (*UpsertRelayMonitorLocationResponse)(nil), // 56: xatu.UpsertRelayMonitorLocationResponse - (*ExecutionNodeStatus_Capability)(nil), // 57: xatu.ExecutionNodeStatus.Capability - (*ExecutionNodeStatus_ForkID)(nil), // 58: xatu.ExecutionNodeStatus.ForkID - (*timestamppb.Timestamp)(nil), // 59: google.protobuf.Timestamp + (*CannonLocationEthV2BeaconBlockPayloadAttestation)(nil), // 44: xatu.CannonLocationEthV2BeaconBlockPayloadAttestation + (*CannonLocationEthV2BeaconBlockExecutionPayloadBid)(nil), // 45: xatu.CannonLocationEthV2BeaconBlockExecutionPayloadBid + (*CannonLocation)(nil), // 46: xatu.CannonLocation + (*GetCannonLocationRequest)(nil), // 47: xatu.GetCannonLocationRequest + (*GetCannonLocationResponse)(nil), // 48: xatu.GetCannonLocationResponse + (*UpsertCannonLocationRequest)(nil), // 49: xatu.UpsertCannonLocationRequest + (*UpsertCannonLocationResponse)(nil), // 50: xatu.UpsertCannonLocationResponse + (*RelayMonitorSlotMarker)(nil), // 51: xatu.RelayMonitorSlotMarker + (*RelayMonitorLocationBidTrace)(nil), // 52: xatu.RelayMonitorLocationBidTrace + (*RelayMonitorLocationPayloadDelivered)(nil), // 53: xatu.RelayMonitorLocationPayloadDelivered + (*RelayMonitorLocation)(nil), // 54: xatu.RelayMonitorLocation + (*GetRelayMonitorLocationRequest)(nil), // 55: xatu.GetRelayMonitorLocationRequest + (*GetRelayMonitorLocationResponse)(nil), // 56: xatu.GetRelayMonitorLocationResponse + (*UpsertRelayMonitorLocationRequest)(nil), // 57: xatu.UpsertRelayMonitorLocationRequest + (*UpsertRelayMonitorLocationResponse)(nil), // 58: xatu.UpsertRelayMonitorLocationResponse + (*ExecutionNodeStatus_Capability)(nil), // 59: xatu.ExecutionNodeStatus.Capability + (*ExecutionNodeStatus_ForkID)(nil), // 60: xatu.ExecutionNodeStatus.ForkID + (*timestamppb.Timestamp)(nil), // 61: google.protobuf.Timestamp } var file_pkg_proto_xatu_coordinator_proto_depIdxs = []int32{ - 57, // 0: xatu.ExecutionNodeStatus.capabilities:type_name -> xatu.ExecutionNodeStatus.Capability - 58, // 1: xatu.ExecutionNodeStatus.fork_id:type_name -> xatu.ExecutionNodeStatus.ForkID + 59, // 0: xatu.ExecutionNodeStatus.capabilities:type_name -> xatu.ExecutionNodeStatus.Capability + 60, // 1: xatu.ExecutionNodeStatus.fork_id:type_name -> xatu.ExecutionNodeStatus.ForkID 6, // 2: xatu.CreateExecutionNodeRecordStatusRequest.status:type_name -> xatu.ExecutionNodeStatus 9, // 3: xatu.CoordinateExecutionNodeRecordsRequest.node_records:type_name -> xatu.CoordinatedNodeRecord - 59, // 4: xatu.ConsensusNodeStatus.finalized_epoch_start_date_time:type_name -> google.protobuf.Timestamp - 59, // 5: xatu.ConsensusNodeStatus.head_slot_start_date_time:type_name -> google.protobuf.Timestamp + 61, // 4: xatu.ConsensusNodeStatus.finalized_epoch_start_date_time:type_name -> google.protobuf.Timestamp + 61, // 5: xatu.ConsensusNodeStatus.head_slot_start_date_time:type_name -> google.protobuf.Timestamp 12, // 6: xatu.CreateConsensusNodeRecordStatusRequest.status:type_name -> xatu.ConsensusNodeStatus 12, // 7: xatu.CreateConsensusNodeRecordStatusesRequest.statuses:type_name -> xatu.ConsensusNodeStatus 9, // 8: xatu.CoordinateConsensusNodeRecordsRequest.node_records:type_name -> xatu.CoordinatedNodeRecord @@ -4340,69 +4520,73 @@ var file_pkg_proto_xatu_coordinator_proto_depIdxs = []int32{ 27, // 22: xatu.CannonLocationEthV1BeaconSyncCommittee.backfilling_checkpoint_marker:type_name -> xatu.BackfillingCheckpointMarker 27, // 23: xatu.CannonLocationEthV2BeaconBlockSyncAggregate.backfilling_checkpoint_marker:type_name -> xatu.BackfillingCheckpointMarker 27, // 24: xatu.CannonLocationEthV2BeaconBlockAccessList.backfilling_checkpoint_marker:type_name -> xatu.BackfillingCheckpointMarker - 0, // 25: xatu.CannonLocation.type:type_name -> xatu.CannonType - 28, // 26: xatu.CannonLocation.eth_v2_beacon_block_voluntary_exit:type_name -> xatu.CannonLocationEthV2BeaconBlockVoluntaryExit - 29, // 27: xatu.CannonLocation.eth_v2_beacon_block_proposer_slashing:type_name -> xatu.CannonLocationEthV2BeaconBlockProposerSlashing - 30, // 28: xatu.CannonLocation.eth_v2_beacon_block_deposit:type_name -> xatu.CannonLocationEthV2BeaconBlockDeposit - 31, // 29: xatu.CannonLocation.eth_v2_beacon_block_attester_slashing:type_name -> xatu.CannonLocationEthV2BeaconBlockAttesterSlashing - 32, // 30: xatu.CannonLocation.eth_v2_beacon_block_bls_to_execution_change:type_name -> xatu.CannonLocationEthV2BeaconBlockBlsToExecutionChange - 33, // 31: xatu.CannonLocation.eth_v2_beacon_block_execution_transaction:type_name -> xatu.CannonLocationEthV2BeaconBlockExecutionTransaction - 34, // 32: xatu.CannonLocation.eth_v2_beacon_block_withdrawal:type_name -> xatu.CannonLocationEthV2BeaconBlockWithdrawal - 35, // 33: xatu.CannonLocation.eth_v2_beacon_block:type_name -> xatu.CannonLocationEthV2BeaconBlock - 36, // 34: xatu.CannonLocation.eth_v1_beacon_blob_sidecar:type_name -> xatu.CannonLocationEthV1BeaconBlobSidecar - 37, // 35: xatu.CannonLocation.eth_v1_beacon_proposer_duty:type_name -> xatu.CannonLocationEthV1BeaconProposerDuty - 38, // 36: xatu.CannonLocation.eth_v2_beacon_block_elaborated_attestation:type_name -> xatu.CannonLocationEthV2BeaconBlockElaboratedAttestation - 39, // 37: xatu.CannonLocation.eth_v1_beacon_validators:type_name -> xatu.CannonLocationEthV1BeaconValidators - 40, // 38: xatu.CannonLocation.eth_v1_beacon_committee:type_name -> xatu.CannonLocationEthV1BeaconCommittee - 41, // 39: xatu.CannonLocation.eth_v1_beacon_sync_committee:type_name -> xatu.CannonLocationEthV1BeaconSyncCommittee - 42, // 40: xatu.CannonLocation.eth_v2_beacon_block_sync_aggregate:type_name -> xatu.CannonLocationEthV2BeaconBlockSyncAggregate - 43, // 41: xatu.CannonLocation.eth_v2_beacon_block_access_list:type_name -> xatu.CannonLocationEthV2BeaconBlockAccessList - 0, // 42: xatu.GetCannonLocationRequest.type:type_name -> xatu.CannonType - 44, // 43: xatu.GetCannonLocationResponse.location:type_name -> xatu.CannonLocation - 44, // 44: xatu.UpsertCannonLocationRequest.location:type_name -> xatu.CannonLocation - 49, // 45: xatu.RelayMonitorLocationBidTrace.slot_marker:type_name -> xatu.RelayMonitorSlotMarker - 49, // 46: xatu.RelayMonitorLocationPayloadDelivered.slot_marker:type_name -> xatu.RelayMonitorSlotMarker - 1, // 47: xatu.RelayMonitorLocation.type:type_name -> xatu.RelayMonitorType - 50, // 48: xatu.RelayMonitorLocation.bid_trace:type_name -> xatu.RelayMonitorLocationBidTrace - 51, // 49: xatu.RelayMonitorLocation.payload_delivered:type_name -> xatu.RelayMonitorLocationPayloadDelivered - 1, // 50: xatu.GetRelayMonitorLocationRequest.type:type_name -> xatu.RelayMonitorType - 52, // 51: xatu.GetRelayMonitorLocationResponse.location:type_name -> xatu.RelayMonitorLocation - 52, // 52: xatu.UpsertRelayMonitorLocationRequest.location:type_name -> xatu.RelayMonitorLocation - 2, // 53: xatu.Coordinator.CreateNodeRecords:input_type -> xatu.CreateNodeRecordsRequest - 4, // 54: xatu.Coordinator.ListStalledExecutionNodeRecords:input_type -> xatu.ListStalledExecutionNodeRecordsRequest - 7, // 55: xatu.Coordinator.CreateExecutionNodeRecordStatus:input_type -> xatu.CreateExecutionNodeRecordStatusRequest - 10, // 56: xatu.Coordinator.CoordinateExecutionNodeRecords:input_type -> xatu.CoordinateExecutionNodeRecordsRequest - 13, // 57: xatu.Coordinator.ListStalledConsensusNodeRecords:input_type -> xatu.ListStalledConsensusNodeRecordsRequest - 15, // 58: xatu.Coordinator.CreateConsensusNodeRecordStatus:input_type -> xatu.CreateConsensusNodeRecordStatusRequest - 17, // 59: xatu.Coordinator.CreateConsensusNodeRecordStatuses:input_type -> xatu.CreateConsensusNodeRecordStatusesRequest - 19, // 60: xatu.Coordinator.CoordinateConsensusNodeRecords:input_type -> xatu.CoordinateConsensusNodeRecordsRequest - 21, // 61: xatu.Coordinator.GetDiscoveryNodeRecord:input_type -> xatu.GetDiscoveryNodeRecordRequest - 23, // 62: xatu.Coordinator.GetDiscoveryExecutionNodeRecord:input_type -> xatu.GetDiscoveryExecutionNodeRecordRequest - 25, // 63: xatu.Coordinator.GetDiscoveryConsensusNodeRecord:input_type -> xatu.GetDiscoveryConsensusNodeRecordRequest - 45, // 64: xatu.Coordinator.GetCannonLocation:input_type -> xatu.GetCannonLocationRequest - 47, // 65: xatu.Coordinator.UpsertCannonLocation:input_type -> xatu.UpsertCannonLocationRequest - 53, // 66: xatu.Coordinator.GetRelayMonitorLocation:input_type -> xatu.GetRelayMonitorLocationRequest - 55, // 67: xatu.Coordinator.UpsertRelayMonitorLocation:input_type -> xatu.UpsertRelayMonitorLocationRequest - 3, // 68: xatu.Coordinator.CreateNodeRecords:output_type -> xatu.CreateNodeRecordsResponse - 5, // 69: xatu.Coordinator.ListStalledExecutionNodeRecords:output_type -> xatu.ListStalledExecutionNodeRecordsResponse - 8, // 70: xatu.Coordinator.CreateExecutionNodeRecordStatus:output_type -> xatu.CreateExecutionNodeRecordStatusResponse - 11, // 71: xatu.Coordinator.CoordinateExecutionNodeRecords:output_type -> xatu.CoordinateExecutionNodeRecordsResponse - 14, // 72: xatu.Coordinator.ListStalledConsensusNodeRecords:output_type -> xatu.ListStalledConsensusNodeRecordsResponse - 16, // 73: xatu.Coordinator.CreateConsensusNodeRecordStatus:output_type -> xatu.CreateConsensusNodeRecordStatusResponse - 18, // 74: xatu.Coordinator.CreateConsensusNodeRecordStatuses:output_type -> xatu.CreateConsensusNodeRecordStatusesResponse - 20, // 75: xatu.Coordinator.CoordinateConsensusNodeRecords:output_type -> xatu.CoordinateConsensusNodeRecordsResponse - 22, // 76: xatu.Coordinator.GetDiscoveryNodeRecord:output_type -> xatu.GetDiscoveryNodeRecordResponse - 24, // 77: xatu.Coordinator.GetDiscoveryExecutionNodeRecord:output_type -> xatu.GetDiscoveryExecutionNodeRecordResponse - 26, // 78: xatu.Coordinator.GetDiscoveryConsensusNodeRecord:output_type -> xatu.GetDiscoveryConsensusNodeRecordResponse - 46, // 79: xatu.Coordinator.GetCannonLocation:output_type -> xatu.GetCannonLocationResponse - 48, // 80: xatu.Coordinator.UpsertCannonLocation:output_type -> xatu.UpsertCannonLocationResponse - 54, // 81: xatu.Coordinator.GetRelayMonitorLocation:output_type -> xatu.GetRelayMonitorLocationResponse - 56, // 82: xatu.Coordinator.UpsertRelayMonitorLocation:output_type -> xatu.UpsertRelayMonitorLocationResponse - 68, // [68:83] is the sub-list for method output_type - 53, // [53:68] is the sub-list for method input_type - 53, // [53:53] is the sub-list for extension type_name - 53, // [53:53] is the sub-list for extension extendee - 0, // [0:53] is the sub-list for field type_name + 27, // 25: xatu.CannonLocationEthV2BeaconBlockPayloadAttestation.backfilling_checkpoint_marker:type_name -> xatu.BackfillingCheckpointMarker + 27, // 26: xatu.CannonLocationEthV2BeaconBlockExecutionPayloadBid.backfilling_checkpoint_marker:type_name -> xatu.BackfillingCheckpointMarker + 0, // 27: xatu.CannonLocation.type:type_name -> xatu.CannonType + 28, // 28: xatu.CannonLocation.eth_v2_beacon_block_voluntary_exit:type_name -> xatu.CannonLocationEthV2BeaconBlockVoluntaryExit + 29, // 29: xatu.CannonLocation.eth_v2_beacon_block_proposer_slashing:type_name -> xatu.CannonLocationEthV2BeaconBlockProposerSlashing + 30, // 30: xatu.CannonLocation.eth_v2_beacon_block_deposit:type_name -> xatu.CannonLocationEthV2BeaconBlockDeposit + 31, // 31: xatu.CannonLocation.eth_v2_beacon_block_attester_slashing:type_name -> xatu.CannonLocationEthV2BeaconBlockAttesterSlashing + 32, // 32: xatu.CannonLocation.eth_v2_beacon_block_bls_to_execution_change:type_name -> xatu.CannonLocationEthV2BeaconBlockBlsToExecutionChange + 33, // 33: xatu.CannonLocation.eth_v2_beacon_block_execution_transaction:type_name -> xatu.CannonLocationEthV2BeaconBlockExecutionTransaction + 34, // 34: xatu.CannonLocation.eth_v2_beacon_block_withdrawal:type_name -> xatu.CannonLocationEthV2BeaconBlockWithdrawal + 35, // 35: xatu.CannonLocation.eth_v2_beacon_block:type_name -> xatu.CannonLocationEthV2BeaconBlock + 36, // 36: xatu.CannonLocation.eth_v1_beacon_blob_sidecar:type_name -> xatu.CannonLocationEthV1BeaconBlobSidecar + 37, // 37: xatu.CannonLocation.eth_v1_beacon_proposer_duty:type_name -> xatu.CannonLocationEthV1BeaconProposerDuty + 38, // 38: xatu.CannonLocation.eth_v2_beacon_block_elaborated_attestation:type_name -> xatu.CannonLocationEthV2BeaconBlockElaboratedAttestation + 39, // 39: xatu.CannonLocation.eth_v1_beacon_validators:type_name -> xatu.CannonLocationEthV1BeaconValidators + 40, // 40: xatu.CannonLocation.eth_v1_beacon_committee:type_name -> xatu.CannonLocationEthV1BeaconCommittee + 41, // 41: xatu.CannonLocation.eth_v1_beacon_sync_committee:type_name -> xatu.CannonLocationEthV1BeaconSyncCommittee + 42, // 42: xatu.CannonLocation.eth_v2_beacon_block_sync_aggregate:type_name -> xatu.CannonLocationEthV2BeaconBlockSyncAggregate + 43, // 43: xatu.CannonLocation.eth_v2_beacon_block_access_list:type_name -> xatu.CannonLocationEthV2BeaconBlockAccessList + 44, // 44: xatu.CannonLocation.eth_v2_beacon_block_payload_attestation:type_name -> xatu.CannonLocationEthV2BeaconBlockPayloadAttestation + 45, // 45: xatu.CannonLocation.eth_v2_beacon_block_execution_payload_bid:type_name -> xatu.CannonLocationEthV2BeaconBlockExecutionPayloadBid + 0, // 46: xatu.GetCannonLocationRequest.type:type_name -> xatu.CannonType + 46, // 47: xatu.GetCannonLocationResponse.location:type_name -> xatu.CannonLocation + 46, // 48: xatu.UpsertCannonLocationRequest.location:type_name -> xatu.CannonLocation + 51, // 49: xatu.RelayMonitorLocationBidTrace.slot_marker:type_name -> xatu.RelayMonitorSlotMarker + 51, // 50: xatu.RelayMonitorLocationPayloadDelivered.slot_marker:type_name -> xatu.RelayMonitorSlotMarker + 1, // 51: xatu.RelayMonitorLocation.type:type_name -> xatu.RelayMonitorType + 52, // 52: xatu.RelayMonitorLocation.bid_trace:type_name -> xatu.RelayMonitorLocationBidTrace + 53, // 53: xatu.RelayMonitorLocation.payload_delivered:type_name -> xatu.RelayMonitorLocationPayloadDelivered + 1, // 54: xatu.GetRelayMonitorLocationRequest.type:type_name -> xatu.RelayMonitorType + 54, // 55: xatu.GetRelayMonitorLocationResponse.location:type_name -> xatu.RelayMonitorLocation + 54, // 56: xatu.UpsertRelayMonitorLocationRequest.location:type_name -> xatu.RelayMonitorLocation + 2, // 57: xatu.Coordinator.CreateNodeRecords:input_type -> xatu.CreateNodeRecordsRequest + 4, // 58: xatu.Coordinator.ListStalledExecutionNodeRecords:input_type -> xatu.ListStalledExecutionNodeRecordsRequest + 7, // 59: xatu.Coordinator.CreateExecutionNodeRecordStatus:input_type -> xatu.CreateExecutionNodeRecordStatusRequest + 10, // 60: xatu.Coordinator.CoordinateExecutionNodeRecords:input_type -> xatu.CoordinateExecutionNodeRecordsRequest + 13, // 61: xatu.Coordinator.ListStalledConsensusNodeRecords:input_type -> xatu.ListStalledConsensusNodeRecordsRequest + 15, // 62: xatu.Coordinator.CreateConsensusNodeRecordStatus:input_type -> xatu.CreateConsensusNodeRecordStatusRequest + 17, // 63: xatu.Coordinator.CreateConsensusNodeRecordStatuses:input_type -> xatu.CreateConsensusNodeRecordStatusesRequest + 19, // 64: xatu.Coordinator.CoordinateConsensusNodeRecords:input_type -> xatu.CoordinateConsensusNodeRecordsRequest + 21, // 65: xatu.Coordinator.GetDiscoveryNodeRecord:input_type -> xatu.GetDiscoveryNodeRecordRequest + 23, // 66: xatu.Coordinator.GetDiscoveryExecutionNodeRecord:input_type -> xatu.GetDiscoveryExecutionNodeRecordRequest + 25, // 67: xatu.Coordinator.GetDiscoveryConsensusNodeRecord:input_type -> xatu.GetDiscoveryConsensusNodeRecordRequest + 47, // 68: xatu.Coordinator.GetCannonLocation:input_type -> xatu.GetCannonLocationRequest + 49, // 69: xatu.Coordinator.UpsertCannonLocation:input_type -> xatu.UpsertCannonLocationRequest + 55, // 70: xatu.Coordinator.GetRelayMonitorLocation:input_type -> xatu.GetRelayMonitorLocationRequest + 57, // 71: xatu.Coordinator.UpsertRelayMonitorLocation:input_type -> xatu.UpsertRelayMonitorLocationRequest + 3, // 72: xatu.Coordinator.CreateNodeRecords:output_type -> xatu.CreateNodeRecordsResponse + 5, // 73: xatu.Coordinator.ListStalledExecutionNodeRecords:output_type -> xatu.ListStalledExecutionNodeRecordsResponse + 8, // 74: xatu.Coordinator.CreateExecutionNodeRecordStatus:output_type -> xatu.CreateExecutionNodeRecordStatusResponse + 11, // 75: xatu.Coordinator.CoordinateExecutionNodeRecords:output_type -> xatu.CoordinateExecutionNodeRecordsResponse + 14, // 76: xatu.Coordinator.ListStalledConsensusNodeRecords:output_type -> xatu.ListStalledConsensusNodeRecordsResponse + 16, // 77: xatu.Coordinator.CreateConsensusNodeRecordStatus:output_type -> xatu.CreateConsensusNodeRecordStatusResponse + 18, // 78: xatu.Coordinator.CreateConsensusNodeRecordStatuses:output_type -> xatu.CreateConsensusNodeRecordStatusesResponse + 20, // 79: xatu.Coordinator.CoordinateConsensusNodeRecords:output_type -> xatu.CoordinateConsensusNodeRecordsResponse + 22, // 80: xatu.Coordinator.GetDiscoveryNodeRecord:output_type -> xatu.GetDiscoveryNodeRecordResponse + 24, // 81: xatu.Coordinator.GetDiscoveryExecutionNodeRecord:output_type -> xatu.GetDiscoveryExecutionNodeRecordResponse + 26, // 82: xatu.Coordinator.GetDiscoveryConsensusNodeRecord:output_type -> xatu.GetDiscoveryConsensusNodeRecordResponse + 48, // 83: xatu.Coordinator.GetCannonLocation:output_type -> xatu.GetCannonLocationResponse + 50, // 84: xatu.Coordinator.UpsertCannonLocation:output_type -> xatu.UpsertCannonLocationResponse + 56, // 85: xatu.Coordinator.GetRelayMonitorLocation:output_type -> xatu.GetRelayMonitorLocationResponse + 58, // 86: xatu.Coordinator.UpsertRelayMonitorLocation:output_type -> xatu.UpsertRelayMonitorLocationResponse + 72, // [72:87] is the sub-list for method output_type + 57, // [57:72] is the sub-list for method input_type + 57, // [57:57] is the sub-list for extension type_name + 57, // [57:57] is the sub-list for extension extendee + 0, // [0:57] is the sub-list for field type_name } func init() { file_pkg_proto_xatu_coordinator_proto_init() } @@ -4916,7 +5100,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[42].Exporter = func(v any, i int) any { - switch v := v.(*CannonLocation); i { + switch v := v.(*CannonLocationEthV2BeaconBlockPayloadAttestation); i { case 0: return &v.state case 1: @@ -4928,7 +5112,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[43].Exporter = func(v any, i int) any { - switch v := v.(*GetCannonLocationRequest); i { + switch v := v.(*CannonLocationEthV2BeaconBlockExecutionPayloadBid); i { case 0: return &v.state case 1: @@ -4940,7 +5124,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[44].Exporter = func(v any, i int) any { - switch v := v.(*GetCannonLocationResponse); i { + switch v := v.(*CannonLocation); i { case 0: return &v.state case 1: @@ -4952,7 +5136,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[45].Exporter = func(v any, i int) any { - switch v := v.(*UpsertCannonLocationRequest); i { + switch v := v.(*GetCannonLocationRequest); i { case 0: return &v.state case 1: @@ -4964,7 +5148,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[46].Exporter = func(v any, i int) any { - switch v := v.(*UpsertCannonLocationResponse); i { + switch v := v.(*GetCannonLocationResponse); i { case 0: return &v.state case 1: @@ -4976,7 +5160,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[47].Exporter = func(v any, i int) any { - switch v := v.(*RelayMonitorSlotMarker); i { + switch v := v.(*UpsertCannonLocationRequest); i { case 0: return &v.state case 1: @@ -4988,7 +5172,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[48].Exporter = func(v any, i int) any { - switch v := v.(*RelayMonitorLocationBidTrace); i { + switch v := v.(*UpsertCannonLocationResponse); i { case 0: return &v.state case 1: @@ -5000,7 +5184,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[49].Exporter = func(v any, i int) any { - switch v := v.(*RelayMonitorLocationPayloadDelivered); i { + switch v := v.(*RelayMonitorSlotMarker); i { case 0: return &v.state case 1: @@ -5012,7 +5196,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[50].Exporter = func(v any, i int) any { - switch v := v.(*RelayMonitorLocation); i { + switch v := v.(*RelayMonitorLocationBidTrace); i { case 0: return &v.state case 1: @@ -5024,7 +5208,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[51].Exporter = func(v any, i int) any { - switch v := v.(*GetRelayMonitorLocationRequest); i { + switch v := v.(*RelayMonitorLocationPayloadDelivered); i { case 0: return &v.state case 1: @@ -5036,7 +5220,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[52].Exporter = func(v any, i int) any { - switch v := v.(*GetRelayMonitorLocationResponse); i { + switch v := v.(*RelayMonitorLocation); i { case 0: return &v.state case 1: @@ -5048,7 +5232,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[53].Exporter = func(v any, i int) any { - switch v := v.(*UpsertRelayMonitorLocationRequest); i { + switch v := v.(*GetRelayMonitorLocationRequest); i { case 0: return &v.state case 1: @@ -5060,7 +5244,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[54].Exporter = func(v any, i int) any { - switch v := v.(*UpsertRelayMonitorLocationResponse); i { + switch v := v.(*GetRelayMonitorLocationResponse); i { case 0: return &v.state case 1: @@ -5072,7 +5256,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[55].Exporter = func(v any, i int) any { - switch v := v.(*ExecutionNodeStatus_Capability); i { + switch v := v.(*UpsertRelayMonitorLocationRequest); i { case 0: return &v.state case 1: @@ -5084,6 +5268,30 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } file_pkg_proto_xatu_coordinator_proto_msgTypes[56].Exporter = func(v any, i int) any { + switch v := v.(*UpsertRelayMonitorLocationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_xatu_coordinator_proto_msgTypes[57].Exporter = func(v any, i int) any { + switch v := v.(*ExecutionNodeStatus_Capability); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_xatu_coordinator_proto_msgTypes[58].Exporter = func(v any, i int) any { switch v := v.(*ExecutionNodeStatus_ForkID); i { case 0: return &v.state @@ -5096,7 +5304,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { } } } - file_pkg_proto_xatu_coordinator_proto_msgTypes[42].OneofWrappers = []any{ + file_pkg_proto_xatu_coordinator_proto_msgTypes[44].OneofWrappers = []any{ (*CannonLocation_EthV2BeaconBlockVoluntaryExit)(nil), (*CannonLocation_EthV2BeaconBlockProposerSlashing)(nil), (*CannonLocation_EthV2BeaconBlockDeposit)(nil), @@ -5113,8 +5321,10 @@ func file_pkg_proto_xatu_coordinator_proto_init() { (*CannonLocation_EthV1BeaconSyncCommittee)(nil), (*CannonLocation_EthV2BeaconBlockSyncAggregate)(nil), (*CannonLocation_EthV2BeaconBlockAccessList)(nil), + (*CannonLocation_EthV2BeaconBlockPayloadAttestation)(nil), + (*CannonLocation_EthV2BeaconBlockExecutionPayloadBid)(nil), } - file_pkg_proto_xatu_coordinator_proto_msgTypes[50].OneofWrappers = []any{ + file_pkg_proto_xatu_coordinator_proto_msgTypes[52].OneofWrappers = []any{ (*RelayMonitorLocation_BidTrace)(nil), (*RelayMonitorLocation_PayloadDelivered)(nil), } @@ -5124,7 +5334,7 @@ func file_pkg_proto_xatu_coordinator_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pkg_proto_xatu_coordinator_proto_rawDesc, NumEnums: 2, - NumMessages: 57, + NumMessages: 59, NumExtensions: 0, NumServices: 1, }, diff --git a/pkg/proto/xatu/coordinator.proto b/pkg/proto/xatu/coordinator.proto index 4b77567c7..3e7380ee9 100644 --- a/pkg/proto/xatu/coordinator.proto +++ b/pkg/proto/xatu/coordinator.proto @@ -198,6 +198,10 @@ enum CannonType { BEACON_API_ETH_V1_BEACON_SYNC_COMMITTEE = 14; BEACON_API_ETH_V2_BEACON_BLOCK_SYNC_AGGREGATE = 15; BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST = 16; + + // EIP-7732 ePBS cannon types + BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION = 17; + BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID = 18; } message BackfillingCheckpointMarker { @@ -280,6 +284,15 @@ message CannonLocationEthV2BeaconBlockAccessList { BackfillingCheckpointMarker backfilling_checkpoint_marker = 1; } +// EIP-7732 ePBS cannon location types +message CannonLocationEthV2BeaconBlockPayloadAttestation { + BackfillingCheckpointMarker backfilling_checkpoint_marker = 1; +} + +message CannonLocationEthV2BeaconBlockExecutionPayloadBid { + BackfillingCheckpointMarker backfilling_checkpoint_marker = 1; +} + message CannonLocation { string network_id = 1; CannonType type = 2; @@ -325,6 +338,12 @@ message CannonLocation { [ json_name = "BEACON_API_ETH_V2_BEACON_BLOCK_SYNC_AGGREGATE" ]; CannonLocationEthV2BeaconBlockAccessList eth_v2_beacon_block_access_list = 19 [ json_name = "BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST" ]; + + // EIP-7732 ePBS + CannonLocationEthV2BeaconBlockPayloadAttestation eth_v2_beacon_block_payload_attestation = 20 + [ json_name = "BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION" ]; + CannonLocationEthV2BeaconBlockExecutionPayloadBid eth_v2_beacon_block_execution_payload_bid = 21 + [ json_name = "BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID" ]; } } diff --git a/pkg/proto/xatu/event_ingester.pb.go b/pkg/proto/xatu/event_ingester.pb.go index 5eb46cda1..bdfe23d46 100644 --- a/pkg/proto/xatu/event_ingester.pb.go +++ b/pkg/proto/xatu/event_ingester.pb.go @@ -2300,6 +2300,16 @@ type ClientMeta struct { // *ClientMeta_EthV2BeaconBlockSyncAggregate // *ClientMeta_Libp2PTraceIdentify // *ClientMeta_EthV2BeaconBlockAccessList + // *ClientMeta_EthV1EventsExecutionPayload + // *ClientMeta_EthV1EventsPayloadAttestation + // *ClientMeta_EthV1EventsExecutionPayloadBid + // *ClientMeta_EthV1EventsProposerPreferences + // *ClientMeta_EthV2BeaconBlockPayloadAttestation + // *ClientMeta_EthV2BeaconBlockExecutionPayloadBid + // *ClientMeta_Libp2PTraceGossipsubExecutionPayloadEnvelope + // *ClientMeta_Libp2PTraceGossipsubExecutionPayloadBid + // *ClientMeta_Libp2PTraceGossipsubPayloadAttestationMessage + // *ClientMeta_Libp2PTraceGossipsubProposerPreferences AdditionalData isClientMeta_AdditionalData `protobuf_oneof:"AdditionalData"` // ModuleName contains the name of the module that sent the event. ModuleName ModuleName `protobuf:"varint,63,opt,name=module_name,proto3,enum=xatu.ModuleName" json:"module_name,omitempty"` @@ -2976,6 +2986,76 @@ func (x *ClientMeta) GetEthV2BeaconBlockAccessList() *ClientMeta_AdditionalEthV2 return nil } +func (x *ClientMeta) GetEthV1EventsExecutionPayload() *ClientMeta_AdditionalEthV1EventsExecutionPayloadData { + if x, ok := x.GetAdditionalData().(*ClientMeta_EthV1EventsExecutionPayload); ok { + return x.EthV1EventsExecutionPayload + } + return nil +} + +func (x *ClientMeta) GetEthV1EventsPayloadAttestation() *ClientMeta_AdditionalEthV1EventsPayloadAttestationData { + if x, ok := x.GetAdditionalData().(*ClientMeta_EthV1EventsPayloadAttestation); ok { + return x.EthV1EventsPayloadAttestation + } + return nil +} + +func (x *ClientMeta) GetEthV1EventsExecutionPayloadBid() *ClientMeta_AdditionalEthV1EventsExecutionPayloadBidData { + if x, ok := x.GetAdditionalData().(*ClientMeta_EthV1EventsExecutionPayloadBid); ok { + return x.EthV1EventsExecutionPayloadBid + } + return nil +} + +func (x *ClientMeta) GetEthV1EventsProposerPreferences() *ClientMeta_AdditionalEthV1EventsProposerPreferencesData { + if x, ok := x.GetAdditionalData().(*ClientMeta_EthV1EventsProposerPreferences); ok { + return x.EthV1EventsProposerPreferences + } + return nil +} + +func (x *ClientMeta) GetEthV2BeaconBlockPayloadAttestation() *ClientMeta_AdditionalEthV2BeaconBlockPayloadAttestationData { + if x, ok := x.GetAdditionalData().(*ClientMeta_EthV2BeaconBlockPayloadAttestation); ok { + return x.EthV2BeaconBlockPayloadAttestation + } + return nil +} + +func (x *ClientMeta) GetEthV2BeaconBlockExecutionPayloadBid() *ClientMeta_AdditionalEthV2BeaconBlockExecutionPayloadBidData { + if x, ok := x.GetAdditionalData().(*ClientMeta_EthV2BeaconBlockExecutionPayloadBid); ok { + return x.EthV2BeaconBlockExecutionPayloadBid + } + return nil +} + +func (x *ClientMeta) GetLibp2PTraceGossipsubExecutionPayloadEnvelope() *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData { + if x, ok := x.GetAdditionalData().(*ClientMeta_Libp2PTraceGossipsubExecutionPayloadEnvelope); ok { + return x.Libp2PTraceGossipsubExecutionPayloadEnvelope + } + return nil +} + +func (x *ClientMeta) GetLibp2PTraceGossipsubExecutionPayloadBid() *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData { + if x, ok := x.GetAdditionalData().(*ClientMeta_Libp2PTraceGossipsubExecutionPayloadBid); ok { + return x.Libp2PTraceGossipsubExecutionPayloadBid + } + return nil +} + +func (x *ClientMeta) GetLibp2PTraceGossipsubPayloadAttestationMessage() *ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData { + if x, ok := x.GetAdditionalData().(*ClientMeta_Libp2PTraceGossipsubPayloadAttestationMessage); ok { + return x.Libp2PTraceGossipsubPayloadAttestationMessage + } + return nil +} + +func (x *ClientMeta) GetLibp2PTraceGossipsubProposerPreferences() *ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData { + if x, ok := x.GetAdditionalData().(*ClientMeta_Libp2PTraceGossipsubProposerPreferences); ok { + return x.Libp2PTraceGossipsubProposerPreferences + } + return nil +} + func (x *ClientMeta) GetModuleName() ModuleName { if x != nil { return x.ModuleName @@ -3436,6 +3516,49 @@ type ClientMeta_EthV2BeaconBlockAccessList struct { EthV2BeaconBlockAccessList *ClientMeta_AdditionalEthV2BeaconBlockAccessListData `protobuf:"bytes,95,opt,name=eth_v2_beacon_block_access_list,json=BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST,proto3,oneof"` } +type ClientMeta_EthV1EventsExecutionPayload struct { + // EIP-7732 ePBS: Sentry SSE additional data + EthV1EventsExecutionPayload *ClientMeta_AdditionalEthV1EventsExecutionPayloadData `protobuf:"bytes,96,opt,name=eth_v1_events_execution_payload,json=BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD,proto3,oneof"` +} + +type ClientMeta_EthV1EventsPayloadAttestation struct { + EthV1EventsPayloadAttestation *ClientMeta_AdditionalEthV1EventsPayloadAttestationData `protobuf:"bytes,97,opt,name=eth_v1_events_payload_attestation,json=BEACON_API_ETH_V1_EVENTS_PAYLOAD_ATTESTATION,proto3,oneof"` +} + +type ClientMeta_EthV1EventsExecutionPayloadBid struct { + EthV1EventsExecutionPayloadBid *ClientMeta_AdditionalEthV1EventsExecutionPayloadBidData `protobuf:"bytes,98,opt,name=eth_v1_events_execution_payload_bid,json=BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD_BID,proto3,oneof"` +} + +type ClientMeta_EthV1EventsProposerPreferences struct { + EthV1EventsProposerPreferences *ClientMeta_AdditionalEthV1EventsProposerPreferencesData `protobuf:"bytes,99,opt,name=eth_v1_events_proposer_preferences,json=BEACON_API_ETH_V1_EVENTS_PROPOSER_PREFERENCES,proto3,oneof"` +} + +type ClientMeta_EthV2BeaconBlockPayloadAttestation struct { + // EIP-7732 ePBS: Cannon additional data + EthV2BeaconBlockPayloadAttestation *ClientMeta_AdditionalEthV2BeaconBlockPayloadAttestationData `protobuf:"bytes,100,opt,name=eth_v2_beacon_block_payload_attestation,json=BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION,proto3,oneof"` +} + +type ClientMeta_EthV2BeaconBlockExecutionPayloadBid struct { + EthV2BeaconBlockExecutionPayloadBid *ClientMeta_AdditionalEthV2BeaconBlockExecutionPayloadBidData `protobuf:"bytes,101,opt,name=eth_v2_beacon_block_execution_payload_bid,json=BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID,proto3,oneof"` +} + +type ClientMeta_Libp2PTraceGossipsubExecutionPayloadEnvelope struct { + // EIP-7732 ePBS: LibP2P gossip additional data + Libp2PTraceGossipsubExecutionPayloadEnvelope *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData `protobuf:"bytes,102,opt,name=libp2p_trace_gossipsub_execution_payload_envelope,json=LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_ENVELOPE,proto3,oneof"` +} + +type ClientMeta_Libp2PTraceGossipsubExecutionPayloadBid struct { + Libp2PTraceGossipsubExecutionPayloadBid *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData `protobuf:"bytes,103,opt,name=libp2p_trace_gossipsub_execution_payload_bid,json=LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_BID,proto3,oneof"` +} + +type ClientMeta_Libp2PTraceGossipsubPayloadAttestationMessage struct { + Libp2PTraceGossipsubPayloadAttestationMessage *ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData `protobuf:"bytes,104,opt,name=libp2p_trace_gossipsub_payload_attestation_message,json=LIBP2P_TRACE_GOSSIPSUB_PAYLOAD_ATTESTATION_MESSAGE,proto3,oneof"` +} + +type ClientMeta_Libp2PTraceGossipsubProposerPreferences struct { + Libp2PTraceGossipsubProposerPreferences *ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData `protobuf:"bytes,105,opt,name=libp2p_trace_gossipsub_proposer_preferences,json=LIBP2P_TRACE_GOSSIPSUB_PROPOSER_PREFERENCES,proto3,oneof"` +} + func (*ClientMeta_EthV1EventsAttestation) isClientMeta_AdditionalData() {} func (*ClientMeta_EthV1EventsHead) isClientMeta_AdditionalData() {} @@ -3600,6 +3723,26 @@ func (*ClientMeta_Libp2PTraceIdentify) isClientMeta_AdditionalData() {} func (*ClientMeta_EthV2BeaconBlockAccessList) isClientMeta_AdditionalData() {} +func (*ClientMeta_EthV1EventsExecutionPayload) isClientMeta_AdditionalData() {} + +func (*ClientMeta_EthV1EventsPayloadAttestation) isClientMeta_AdditionalData() {} + +func (*ClientMeta_EthV1EventsExecutionPayloadBid) isClientMeta_AdditionalData() {} + +func (*ClientMeta_EthV1EventsProposerPreferences) isClientMeta_AdditionalData() {} + +func (*ClientMeta_EthV2BeaconBlockPayloadAttestation) isClientMeta_AdditionalData() {} + +func (*ClientMeta_EthV2BeaconBlockExecutionPayloadBid) isClientMeta_AdditionalData() {} + +func (*ClientMeta_Libp2PTraceGossipsubExecutionPayloadEnvelope) isClientMeta_AdditionalData() {} + +func (*ClientMeta_Libp2PTraceGossipsubExecutionPayloadBid) isClientMeta_AdditionalData() {} + +func (*ClientMeta_Libp2PTraceGossipsubPayloadAttestationMessage) isClientMeta_AdditionalData() {} + +func (*ClientMeta_Libp2PTraceGossipsubProposerPreferences) isClientMeta_AdditionalData() {} + type ServerMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -8465,24 +8608,20 @@ func (x *ClientMeta_AdditionalEthV2BeaconBlockAccessListData) GetBlockHash() str return "" } -type ClientMeta_AttestationDataSnapshot struct { +// AdditionalEthV1EventsExecutionPayloadData contains additional data about +// execution payload envelope arrivals from the beacon API SSE. +type ClientMeta_AdditionalEthV1EventsExecutionPayloadData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // RequestedAtSlotStartDiffMs is the difference how far in to the slot the - // sentry was when it requested the attestation data snapshot (in - // milliseconds). - RequestedAtSlotStartDiffMs *wrapperspb.UInt64Value `protobuf:"bytes,1,opt,name=requested_at_slot_start_diff_ms,proto3" json:"requested_at_slot_start_diff_ms,omitempty"` - // RequestDurationMs is the duration of the attestation data snapshot - // request (in milliseconds). - RequestDurationMs *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=request_duration_ms,proto3" json:"request_duration_ms,omitempty"` - // Timestamp is the timestamp of the attestation data snapshot. - Timestamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` + Propagation *PropagationV2 `protobuf:"bytes,3,opt,name=propagation,proto3" json:"propagation,omitempty"` } -func (x *ClientMeta_AttestationDataSnapshot) Reset() { - *x = ClientMeta_AttestationDataSnapshot{} +func (x *ClientMeta_AdditionalEthV1EventsExecutionPayloadData) Reset() { + *x = ClientMeta_AdditionalEthV1EventsExecutionPayloadData{} if protoimpl.UnsafeEnabled { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8490,13 +8629,13 @@ func (x *ClientMeta_AttestationDataSnapshot) Reset() { } } -func (x *ClientMeta_AttestationDataSnapshot) String() string { +func (x *ClientMeta_AdditionalEthV1EventsExecutionPayloadData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AttestationDataSnapshot) ProtoMessage() {} +func (*ClientMeta_AdditionalEthV1EventsExecutionPayloadData) ProtoMessage() {} -func (x *ClientMeta_AttestationDataSnapshot) ProtoReflect() protoreflect.Message { +func (x *ClientMeta_AdditionalEthV1EventsExecutionPayloadData) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8508,52 +8647,46 @@ func (x *ClientMeta_AttestationDataSnapshot) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AttestationDataSnapshot.ProtoReflect.Descriptor instead. -func (*ClientMeta_AttestationDataSnapshot) Descriptor() ([]byte, []int) { +// Deprecated: Use ClientMeta_AdditionalEthV1EventsExecutionPayloadData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalEthV1EventsExecutionPayloadData) Descriptor() ([]byte, []int) { return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 44} } -func (x *ClientMeta_AttestationDataSnapshot) GetRequestedAtSlotStartDiffMs() *wrapperspb.UInt64Value { +func (x *ClientMeta_AdditionalEthV1EventsExecutionPayloadData) GetEpoch() *EpochV2 { if x != nil { - return x.RequestedAtSlotStartDiffMs + return x.Epoch } return nil } -func (x *ClientMeta_AttestationDataSnapshot) GetRequestDurationMs() *wrapperspb.UInt64Value { +func (x *ClientMeta_AdditionalEthV1EventsExecutionPayloadData) GetSlot() *SlotV2 { if x != nil { - return x.RequestDurationMs + return x.Slot } return nil } -func (x *ClientMeta_AttestationDataSnapshot) GetTimestamp() *timestamppb.Timestamp { +func (x *ClientMeta_AdditionalEthV1EventsExecutionPayloadData) GetPropagation() *PropagationV2 { if x != nil { - return x.Timestamp + return x.Propagation } return nil } -type ClientMeta_AdditionalEthV1ValidatorAttestationDataData struct { +// AdditionalEthV1EventsPayloadAttestationData contains additional data about +// individual PTC payload attestation messages from the beacon API SSE. +type ClientMeta_AdditionalEthV1EventsPayloadAttestationData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Source contains information for the best currently justified checkpoint. - Source *ClientMeta_AdditionalEthV1AttestationSourceV2Data `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` - // Target contains information of the block at the start of the current - // epoch. - Target *ClientMeta_AdditionalEthV1AttestationTargetV2Data `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"` - // Epoch contains the epoch information for the beacon committee. - Epoch *EpochV2 `protobuf:"bytes,3,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Slot contains the slot information for the beacon committee. - Slot *SlotV2 `protobuf:"bytes,4,opt,name=slot,proto3" json:"slot,omitempty"` - // AttestationDataSnapshot is the snapshot of the attestation data - Snapshot *ClientMeta_AttestationDataSnapshot `protobuf:"bytes,5,opt,name=Snapshot,json=snapshot,proto3" json:"Snapshot,omitempty"` + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` + Propagation *PropagationV2 `protobuf:"bytes,3,opt,name=propagation,proto3" json:"propagation,omitempty"` } -func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) Reset() { - *x = ClientMeta_AdditionalEthV1ValidatorAttestationDataData{} +func (x *ClientMeta_AdditionalEthV1EventsPayloadAttestationData) Reset() { + *x = ClientMeta_AdditionalEthV1EventsPayloadAttestationData{} if protoimpl.UnsafeEnabled { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8561,13 +8694,13 @@ func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) Reset() { } } -func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) String() string { +func (x *ClientMeta_AdditionalEthV1EventsPayloadAttestationData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalEthV1ValidatorAttestationDataData) ProtoMessage() {} +func (*ClientMeta_AdditionalEthV1EventsPayloadAttestationData) ProtoMessage() {} -func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) ProtoReflect() protoreflect.Message { +func (x *ClientMeta_AdditionalEthV1EventsPayloadAttestationData) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8579,62 +8712,46 @@ func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalEthV1ValidatorAttestationDataData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalEthV1ValidatorAttestationDataData) Descriptor() ([]byte, []int) { +// Deprecated: Use ClientMeta_AdditionalEthV1EventsPayloadAttestationData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalEthV1EventsPayloadAttestationData) Descriptor() ([]byte, []int) { return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 45} } -func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) GetSource() *ClientMeta_AdditionalEthV1AttestationSourceV2Data { - if x != nil { - return x.Source - } - return nil -} - -func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) GetTarget() *ClientMeta_AdditionalEthV1AttestationTargetV2Data { - if x != nil { - return x.Target - } - return nil -} - -func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalEthV1EventsPayloadAttestationData) GetEpoch() *EpochV2 { if x != nil { return x.Epoch } return nil } -func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) GetSlot() *SlotV2 { +func (x *ClientMeta_AdditionalEthV1EventsPayloadAttestationData) GetSlot() *SlotV2 { if x != nil { return x.Slot } return nil } -func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) GetSnapshot() *ClientMeta_AttestationDataSnapshot { +func (x *ClientMeta_AdditionalEthV1EventsPayloadAttestationData) GetPropagation() *PropagationV2 { if x != nil { - return x.Snapshot + return x.Propagation } return nil } -type ClientMeta_AdditionalEthV1EventsBlobSidecarData struct { +// AdditionalEthV1EventsExecutionPayloadBidData contains additional data about +// builder bids from the beacon API SSE. +type ClientMeta_AdditionalEthV1EventsExecutionPayloadBidData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Epoch contains the epoch information for the blob sidecar. - Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Slot contains the slot information for the blob sidecar. - Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` - // Propagation contains information about the propagation of the blob - // sidecar. + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` Propagation *PropagationV2 `protobuf:"bytes,3,opt,name=propagation,proto3" json:"propagation,omitempty"` } -func (x *ClientMeta_AdditionalEthV1EventsBlobSidecarData) Reset() { - *x = ClientMeta_AdditionalEthV1EventsBlobSidecarData{} +func (x *ClientMeta_AdditionalEthV1EventsExecutionPayloadBidData) Reset() { + *x = ClientMeta_AdditionalEthV1EventsExecutionPayloadBidData{} if protoimpl.UnsafeEnabled { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8642,13 +8759,13 @@ func (x *ClientMeta_AdditionalEthV1EventsBlobSidecarData) Reset() { } } -func (x *ClientMeta_AdditionalEthV1EventsBlobSidecarData) String() string { +func (x *ClientMeta_AdditionalEthV1EventsExecutionPayloadBidData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalEthV1EventsBlobSidecarData) ProtoMessage() {} +func (*ClientMeta_AdditionalEthV1EventsExecutionPayloadBidData) ProtoMessage() {} -func (x *ClientMeta_AdditionalEthV1EventsBlobSidecarData) ProtoReflect() protoreflect.Message { +func (x *ClientMeta_AdditionalEthV1EventsExecutionPayloadBidData) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8660,48 +8777,46 @@ func (x *ClientMeta_AdditionalEthV1EventsBlobSidecarData) ProtoReflect() protore return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalEthV1EventsBlobSidecarData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalEthV1EventsBlobSidecarData) Descriptor() ([]byte, []int) { +// Deprecated: Use ClientMeta_AdditionalEthV1EventsExecutionPayloadBidData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalEthV1EventsExecutionPayloadBidData) Descriptor() ([]byte, []int) { return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 46} } -func (x *ClientMeta_AdditionalEthV1EventsBlobSidecarData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalEthV1EventsExecutionPayloadBidData) GetEpoch() *EpochV2 { if x != nil { return x.Epoch } return nil } -func (x *ClientMeta_AdditionalEthV1EventsBlobSidecarData) GetSlot() *SlotV2 { +func (x *ClientMeta_AdditionalEthV1EventsExecutionPayloadBidData) GetSlot() *SlotV2 { if x != nil { return x.Slot } return nil } -func (x *ClientMeta_AdditionalEthV1EventsBlobSidecarData) GetPropagation() *PropagationV2 { +func (x *ClientMeta_AdditionalEthV1EventsExecutionPayloadBidData) GetPropagation() *PropagationV2 { if x != nil { return x.Propagation } return nil } -type ClientMeta_AdditionalEthV1EventsDataColumnSidecarData struct { +// AdditionalEthV1EventsProposerPreferencesData contains additional data about +// proposer preferences from the beacon API SSE. +type ClientMeta_AdditionalEthV1EventsProposerPreferencesData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Epoch contains the epoch information for the data column sidecar. - Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Slot contains the slot information for the data column sidecar. - Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` - // Propagation contains information about the propagation of the data column - // sidecar. + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` Propagation *PropagationV2 `protobuf:"bytes,3,opt,name=propagation,proto3" json:"propagation,omitempty"` } -func (x *ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) Reset() { - *x = ClientMeta_AdditionalEthV1EventsDataColumnSidecarData{} +func (x *ClientMeta_AdditionalEthV1EventsProposerPreferencesData) Reset() { + *x = ClientMeta_AdditionalEthV1EventsProposerPreferencesData{} if protoimpl.UnsafeEnabled { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8709,13 +8824,13 @@ func (x *ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) Reset() { } } -func (x *ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) String() string { +func (x *ClientMeta_AdditionalEthV1EventsProposerPreferencesData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) ProtoMessage() {} +func (*ClientMeta_AdditionalEthV1EventsProposerPreferencesData) ProtoMessage() {} -func (x *ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) ProtoReflect() protoreflect.Message { +func (x *ClientMeta_AdditionalEthV1EventsProposerPreferencesData) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8727,51 +8842,44 @@ func (x *ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) ProtoReflect() p return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalEthV1EventsDataColumnSidecarData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) Descriptor() ([]byte, []int) { +// Deprecated: Use ClientMeta_AdditionalEthV1EventsProposerPreferencesData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalEthV1EventsProposerPreferencesData) Descriptor() ([]byte, []int) { return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 47} } -func (x *ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalEthV1EventsProposerPreferencesData) GetEpoch() *EpochV2 { if x != nil { return x.Epoch } return nil } -func (x *ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) GetSlot() *SlotV2 { +func (x *ClientMeta_AdditionalEthV1EventsProposerPreferencesData) GetSlot() *SlotV2 { if x != nil { return x.Slot } return nil } -func (x *ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) GetPropagation() *PropagationV2 { +func (x *ClientMeta_AdditionalEthV1EventsProposerPreferencesData) GetPropagation() *PropagationV2 { if x != nil { return x.Propagation } return nil } -type ClientMeta_AdditionalEthV1BeaconBlobSidecarData struct { +// AdditionalEthV2BeaconBlockPayloadAttestationData contains additional data +// about aggregated PTC payload attestations derived from cannon blocks. +type ClientMeta_AdditionalEthV2BeaconBlockPayloadAttestationData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Epoch contains the epoch information for the blob sidecar. - Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Slot contains the slot information for the blob sidecar. - Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` - // DataSize contains the size of the blob sidecar in bytes. - DataSize *wrapperspb.UInt64Value `protobuf:"bytes,3,opt,name=data_size,proto3" json:"data_size,omitempty"` - // VersionedHash is the versioned hash for the blob sidecar. - VersionedHash string `protobuf:"bytes,4,opt,name=versioned_hash,proto3" json:"versioned_hash,omitempty"` - // DataEmptySize contains the amount of empty bytes of the blob sidecar. - DataEmptySize *wrapperspb.UInt64Value `protobuf:"bytes,5,opt,name=data_empty_size,proto3" json:"data_empty_size,omitempty"` + Block *BlockIdentifier `protobuf:"bytes,1,opt,name=block,proto3" json:"block,omitempty"` } -func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) Reset() { - *x = ClientMeta_AdditionalEthV1BeaconBlobSidecarData{} +func (x *ClientMeta_AdditionalEthV2BeaconBlockPayloadAttestationData) Reset() { + *x = ClientMeta_AdditionalEthV2BeaconBlockPayloadAttestationData{} if protoimpl.UnsafeEnabled { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8779,13 +8887,13 @@ func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) Reset() { } } -func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) String() string { +func (x *ClientMeta_AdditionalEthV2BeaconBlockPayloadAttestationData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalEthV1BeaconBlobSidecarData) ProtoMessage() {} +func (*ClientMeta_AdditionalEthV2BeaconBlockPayloadAttestationData) ProtoMessage() {} -func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) ProtoReflect() protoreflect.Message { +func (x *ClientMeta_AdditionalEthV2BeaconBlockPayloadAttestationData) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -8797,91 +8905,102 @@ func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) ProtoReflect() protore return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalEthV1BeaconBlobSidecarData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalEthV1BeaconBlobSidecarData) Descriptor() ([]byte, []int) { +// Deprecated: Use ClientMeta_AdditionalEthV2BeaconBlockPayloadAttestationData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalEthV2BeaconBlockPayloadAttestationData) Descriptor() ([]byte, []int) { return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 48} } -func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalEthV2BeaconBlockPayloadAttestationData) GetBlock() *BlockIdentifier { if x != nil { - return x.Epoch + return x.Block } return nil } -func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) GetSlot() *SlotV2 { - if x != nil { - return x.Slot - } - return nil +// AdditionalEthV2BeaconBlockExecutionPayloadBidData contains additional data +// about the winning execution payload bid derived from cannon blocks. +type ClientMeta_AdditionalEthV2BeaconBlockExecutionPayloadBidData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Block *BlockIdentifier `protobuf:"bytes,1,opt,name=block,proto3" json:"block,omitempty"` } -func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) GetDataSize() *wrapperspb.UInt64Value { - if x != nil { - return x.DataSize +func (x *ClientMeta_AdditionalEthV2BeaconBlockExecutionPayloadBidData) Reset() { + *x = ClientMeta_AdditionalEthV2BeaconBlockExecutionPayloadBidData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) GetVersionedHash() string { - if x != nil { - return x.VersionedHash +func (x *ClientMeta_AdditionalEthV2BeaconBlockExecutionPayloadBidData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientMeta_AdditionalEthV2BeaconBlockExecutionPayloadBidData) ProtoMessage() {} + +func (x *ClientMeta_AdditionalEthV2BeaconBlockExecutionPayloadBidData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[77] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) GetDataEmptySize() *wrapperspb.UInt64Value { +// Deprecated: Use ClientMeta_AdditionalEthV2BeaconBlockExecutionPayloadBidData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalEthV2BeaconBlockExecutionPayloadBidData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 49} +} + +func (x *ClientMeta_AdditionalEthV2BeaconBlockExecutionPayloadBidData) GetBlock() *BlockIdentifier { if x != nil { - return x.DataEmptySize + return x.Block } return nil } -type ClientMeta_AdditionalBeaconP2PAttestationData struct { +// AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData contains additional +// data about execution payload envelope gossip from libp2p. +type ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Source contains information for the best currently justified checkpoint. - Source *ClientMeta_AdditionalEthV1AttestationSourceV2Data `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` - // Target contains information of the block at the start of the current - // epoch. - Target *ClientMeta_AdditionalEthV1AttestationTargetV2Data `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"` - // Slot contains the slot information for the attestation. - Slot *SlotV2 `protobuf:"bytes,3,opt,name=slot,proto3" json:"slot,omitempty"` - // Epoch contains the epoch information for the attestation. - Epoch *EpochV2 `protobuf:"bytes,4,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Propagation contains information about the propagation of the - // attestation. - Propagation *PropagationV2 `protobuf:"bytes,5,opt,name=propagation,proto3" json:"propagation,omitempty"` - // AttestingValidator contains data about the validator that created the - // attestation. Note: only available for unaggregated attestations. - AttestingValidator *AttestingValidatorV2 `protobuf:"bytes,6,opt,name=attesting_validator,proto3" json:"attesting_validator,omitempty"` - // Peer contains information on the peer that sent us the attestation. - Peer *libp2p.Peer `protobuf:"bytes,7,opt,name=peer,proto3" json:"peer,omitempty"` - // Subnet is the subnet that the attestation was sent on. - Subnet *wrapperspb.UInt32Value `protobuf:"bytes,8,opt,name=subnet,proto3" json:"subnet,omitempty"` - // Validated is if the attestation was validated. - Validated *wrapperspb.BoolValue `protobuf:"bytes,9,opt,name=validated,proto3" json:"validated,omitempty"` + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` + WallclockEpoch *EpochV2 `protobuf:"bytes,3,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` + WallclockSlot *SlotV2 `protobuf:"bytes,4,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` + Propagation *PropagationV2 `protobuf:"bytes,5,opt,name=propagation,proto3" json:"propagation,omitempty"` + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` + Topic *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=topic,proto3" json:"topic,omitempty"` + MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,8,opt,name=message_size,proto3" json:"message_size,omitempty"` + MessageId *wrapperspb.StringValue `protobuf:"bytes,9,opt,name=message_id,proto3" json:"message_id,omitempty"` } -func (x *ClientMeta_AdditionalBeaconP2PAttestationData) Reset() { - *x = ClientMeta_AdditionalBeaconP2PAttestationData{} +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[77] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalBeaconP2PAttestationData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalBeaconP2PAttestationData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData) ProtoMessage() {} -func (x *ClientMeta_AdditionalBeaconP2PAttestationData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[77] +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8892,106 +9011,109 @@ func (x *ClientMeta_AdditionalBeaconP2PAttestationData) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalBeaconP2PAttestationData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalBeaconP2PAttestationData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 49} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 50} } -func (x *ClientMeta_AdditionalBeaconP2PAttestationData) GetSource() *ClientMeta_AdditionalEthV1AttestationSourceV2Data { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData) GetEpoch() *EpochV2 { if x != nil { - return x.Source + return x.Epoch } return nil } -func (x *ClientMeta_AdditionalBeaconP2PAttestationData) GetTarget() *ClientMeta_AdditionalEthV1AttestationTargetV2Data { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData) GetSlot() *SlotV2 { if x != nil { - return x.Target + return x.Slot } return nil } -func (x *ClientMeta_AdditionalBeaconP2PAttestationData) GetSlot() *SlotV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData) GetWallclockEpoch() *EpochV2 { if x != nil { - return x.Slot + return x.WallclockEpoch } return nil } -func (x *ClientMeta_AdditionalBeaconP2PAttestationData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData) GetWallclockSlot() *SlotV2 { if x != nil { - return x.Epoch + return x.WallclockSlot } return nil } -func (x *ClientMeta_AdditionalBeaconP2PAttestationData) GetPropagation() *PropagationV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData) GetPropagation() *PropagationV2 { if x != nil { return x.Propagation } return nil } -func (x *ClientMeta_AdditionalBeaconP2PAttestationData) GetAttestingValidator() *AttestingValidatorV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { - return x.AttestingValidator + return x.Metadata } return nil } -func (x *ClientMeta_AdditionalBeaconP2PAttestationData) GetPeer() *libp2p.Peer { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData) GetTopic() *wrapperspb.StringValue { if x != nil { - return x.Peer + return x.Topic } return nil } -func (x *ClientMeta_AdditionalBeaconP2PAttestationData) GetSubnet() *wrapperspb.UInt32Value { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData) GetMessageSize() *wrapperspb.UInt32Value { if x != nil { - return x.Subnet + return x.MessageSize } return nil } -func (x *ClientMeta_AdditionalBeaconP2PAttestationData) GetValidated() *wrapperspb.BoolValue { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData) GetMessageId() *wrapperspb.StringValue { if x != nil { - return x.Validated + return x.MessageId } return nil } -type ClientMeta_AdditionalEthV1ProposerDutyData struct { +// AdditionalLibP2PTraceGossipSubExecutionPayloadBidData contains additional +// data about builder bid gossip from libp2p. +type ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Epoch contains the epoch information for the proposer duty. - Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Slot contains the slot information for the proposer duty. - Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` - // StateID is the state ID when the proposer duty was requested. - // This can be used to determine if the proposer duty was canonical - // by checking if the state_id is 'finalized'. - StateId string `protobuf:"bytes,3,opt,name=state_id,proto3" json:"state_id,omitempty"` + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` + WallclockEpoch *EpochV2 `protobuf:"bytes,3,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` + WallclockSlot *SlotV2 `protobuf:"bytes,4,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` + Propagation *PropagationV2 `protobuf:"bytes,5,opt,name=propagation,proto3" json:"propagation,omitempty"` + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` + Topic *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=topic,proto3" json:"topic,omitempty"` + MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,8,opt,name=message_size,proto3" json:"message_size,omitempty"` + MessageId *wrapperspb.StringValue `protobuf:"bytes,9,opt,name=message_id,proto3" json:"message_id,omitempty"` } -func (x *ClientMeta_AdditionalEthV1ProposerDutyData) Reset() { - *x = ClientMeta_AdditionalEthV1ProposerDutyData{} +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[78] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalEthV1ProposerDutyData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalEthV1ProposerDutyData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData) ProtoMessage() {} -func (x *ClientMeta_AdditionalEthV1ProposerDutyData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[78] +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9002,138 +9124,94 @@ func (x *ClientMeta_AdditionalEthV1ProposerDutyData) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalEthV1ProposerDutyData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalEthV1ProposerDutyData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 50} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 51} } -func (x *ClientMeta_AdditionalEthV1ProposerDutyData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData) GetEpoch() *EpochV2 { if x != nil { return x.Epoch } return nil } -func (x *ClientMeta_AdditionalEthV1ProposerDutyData) GetSlot() *SlotV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData) GetSlot() *SlotV2 { if x != nil { return x.Slot } return nil } -func (x *ClientMeta_AdditionalEthV1ProposerDutyData) GetStateId() string { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData) GetWallclockEpoch() *EpochV2 { if x != nil { - return x.StateId - } - return "" -} - -type ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Block contains the information about the block that we are deriving the - // elaborated attestation from. - Block *BlockIdentifier `protobuf:"bytes,1,opt,name=block,proto3" json:"block,omitempty"` - // PositionInBlock is the position of the attestation in the block. - PositionInBlock *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=position_in_block,proto3" json:"position_in_block,omitempty"` - // Epoch contains the epoch information for the slot of the attestation. - Epoch *EpochV2 `protobuf:"bytes,3,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Slot contains the slot information for the slot of the attestation. - Slot *SlotV2 `protobuf:"bytes,4,opt,name=slot,proto3" json:"slot,omitempty"` - // Source contains information for source of the attestation. - Source *ClientMeta_AdditionalEthV1AttestationSourceV2Data `protobuf:"bytes,5,opt,name=source,proto3" json:"source,omitempty"` - // Target contains information of the block at the start of the current - // epoch. - Target *ClientMeta_AdditionalEthV1AttestationTargetV2Data `protobuf:"bytes,6,opt,name=target,proto3" json:"target,omitempty"` -} - -func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) Reset() { - *x = ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[79] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) ProtoMessage() {} - -func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[79] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms + return x.WallclockEpoch } - return mi.MessageOf(x) -} - -// Deprecated: Use ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 51} + return nil } -func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) GetBlock() *BlockIdentifier { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData) GetWallclockSlot() *SlotV2 { if x != nil { - return x.Block + return x.WallclockSlot } return nil } -func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) GetPositionInBlock() *wrapperspb.UInt64Value { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData) GetPropagation() *PropagationV2 { if x != nil { - return x.PositionInBlock + return x.Propagation } return nil } -func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { - return x.Epoch + return x.Metadata } return nil } -func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) GetSlot() *SlotV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData) GetTopic() *wrapperspb.StringValue { if x != nil { - return x.Slot + return x.Topic } return nil } -func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) GetSource() *ClientMeta_AdditionalEthV1AttestationSourceV2Data { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData) GetMessageSize() *wrapperspb.UInt32Value { if x != nil { - return x.Source + return x.MessageSize } return nil } -func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) GetTarget() *ClientMeta_AdditionalEthV1AttestationTargetV2Data { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData) GetMessageId() *wrapperspb.StringValue { if x != nil { - return x.Target + return x.MessageId } return nil } -// AdditionalLibP2PTraceAddPeerData: Holds additional data for an add peer event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceAddPeerData struct { +// AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData contains additional +// data about PTC attestation gossip from libp2p. +type ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` + WallclockEpoch *EpochV2 `protobuf:"bytes,3,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` + WallclockSlot *SlotV2 `protobuf:"bytes,4,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` + Propagation *PropagationV2 `protobuf:"bytes,5,opt,name=propagation,proto3" json:"propagation,omitempty"` + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` + Topic *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=topic,proto3" json:"topic,omitempty"` + MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,8,opt,name=message_size,proto3" json:"message_size,omitempty"` + MessageId *wrapperspb.StringValue `protobuf:"bytes,9,opt,name=message_id,proto3" json:"message_id,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceAddPeerData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceAddPeerData{} +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData{} if protoimpl.UnsafeEnabled { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -9141,13 +9219,13 @@ func (x *ClientMeta_AdditionalLibP2PTraceAddPeerData) Reset() { } } -func (x *ClientMeta_AdditionalLibP2PTraceAddPeerData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceAddPeerData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceAddPeerData) ProtoReflect() protoreflect.Message { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -9159,92 +9237,109 @@ func (x *ClientMeta_AdditionalLibP2PTraceAddPeerData) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceAddPeerData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceAddPeerData) Descriptor() ([]byte, []int) { +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData) Descriptor() ([]byte, []int) { return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 52} } -func (x *ClientMeta_AdditionalLibP2PTraceAddPeerData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData) GetEpoch() *EpochV2 { if x != nil { - return x.Metadata + return x.Epoch } return nil } -// AdditionalLibP2PTraceRemovePeerData: Holds additional data for a remove peer event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceRemovePeerData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData) GetSlot() *SlotV2 { + if x != nil { + return x.Slot + } + return nil +} - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData) GetWallclockEpoch() *EpochV2 { + if x != nil { + return x.WallclockEpoch + } + return nil } -func (x *ClientMeta_AdditionalLibP2PTraceRemovePeerData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceRemovePeerData{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[81] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData) GetWallclockSlot() *SlotV2 { + if x != nil { + return x.WallclockSlot } + return nil } -func (x *ClientMeta_AdditionalLibP2PTraceRemovePeerData) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData) GetPropagation() *PropagationV2 { + if x != nil { + return x.Propagation + } + return nil } -func (*ClientMeta_AdditionalLibP2PTraceRemovePeerData) ProtoMessage() {} +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData) GetMetadata() *libp2p.TraceEventMetadata { + if x != nil { + return x.Metadata + } + return nil +} -func (x *ClientMeta_AdditionalLibP2PTraceRemovePeerData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[81] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData) GetTopic() *wrapperspb.StringValue { + if x != nil { + return x.Topic } - return mi.MessageOf(x) + return nil } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRemovePeerData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceRemovePeerData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 53} +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData) GetMessageSize() *wrapperspb.UInt32Value { + if x != nil { + return x.MessageSize + } + return nil } -func (x *ClientMeta_AdditionalLibP2PTraceRemovePeerData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData) GetMessageId() *wrapperspb.StringValue { if x != nil { - return x.Metadata + return x.MessageId } return nil } -// AdditionalLibP2PTraceRecvRPCData: Holds additional data for a receive RPC event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceRecvRPCData struct { +// AdditionalLibP2PTraceGossipSubProposerPreferencesData contains additional +// data about proposer preferences gossip from libp2p. +type ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` + WallclockEpoch *EpochV2 `protobuf:"bytes,3,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` + WallclockSlot *SlotV2 `protobuf:"bytes,4,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` + Propagation *PropagationV2 `protobuf:"bytes,5,opt,name=propagation,proto3" json:"propagation,omitempty"` + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` + Topic *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=topic,proto3" json:"topic,omitempty"` + MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,8,opt,name=message_size,proto3" json:"message_size,omitempty"` + MessageId *wrapperspb.StringValue `protobuf:"bytes,9,opt,name=message_id,proto3" json:"message_id,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceRecvRPCData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceRecvRPCData{} +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[82] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceRecvRPCData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceRecvRPCData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceRecvRPCData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[82] +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9255,92 +9350,107 @@ func (x *ClientMeta_AdditionalLibP2PTraceRecvRPCData) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRecvRPCData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceRecvRPCData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 54} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 53} } -func (x *ClientMeta_AdditionalLibP2PTraceRecvRPCData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData) GetEpoch() *EpochV2 { if x != nil { - return x.Metadata + return x.Epoch } return nil } -// AdditionalLibP2PTraceSendRPCData: Holds additional data for a send RPC event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceSendRPCData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData) GetSlot() *SlotV2 { + if x != nil { + return x.Slot + } + return nil } -func (x *ClientMeta_AdditionalLibP2PTraceSendRPCData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceSendRPCData{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[83] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData) GetWallclockEpoch() *EpochV2 { + if x != nil { + return x.WallclockEpoch } + return nil } -func (x *ClientMeta_AdditionalLibP2PTraceSendRPCData) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData) GetWallclockSlot() *SlotV2 { + if x != nil { + return x.WallclockSlot + } + return nil } -func (*ClientMeta_AdditionalLibP2PTraceSendRPCData) ProtoMessage() {} +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData) GetPropagation() *PropagationV2 { + if x != nil { + return x.Propagation + } + return nil +} -func (x *ClientMeta_AdditionalLibP2PTraceSendRPCData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[83] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData) GetMetadata() *libp2p.TraceEventMetadata { + if x != nil { + return x.Metadata } - return mi.MessageOf(x) + return nil } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceSendRPCData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceSendRPCData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 55} +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData) GetTopic() *wrapperspb.StringValue { + if x != nil { + return x.Topic + } + return nil } -func (x *ClientMeta_AdditionalLibP2PTraceSendRPCData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData) GetMessageSize() *wrapperspb.UInt32Value { if x != nil { - return x.Metadata + return x.MessageSize } return nil } -// AdditionalLibP2PTraceDropRPCData: Holds additional data for a drop RPC event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceDropRPCData struct { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData) GetMessageId() *wrapperspb.StringValue { + if x != nil { + return x.MessageId + } + return nil +} + +type ClientMeta_AttestationDataSnapshot struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + // RequestedAtSlotStartDiffMs is the difference how far in to the slot the + // sentry was when it requested the attestation data snapshot (in + // milliseconds). + RequestedAtSlotStartDiffMs *wrapperspb.UInt64Value `protobuf:"bytes,1,opt,name=requested_at_slot_start_diff_ms,proto3" json:"requested_at_slot_start_diff_ms,omitempty"` + // RequestDurationMs is the duration of the attestation data snapshot + // request (in milliseconds). + RequestDurationMs *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=request_duration_ms,proto3" json:"request_duration_ms,omitempty"` + // Timestamp is the timestamp of the attestation data snapshot. + Timestamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceDropRPCData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceDropRPCData{} +func (x *ClientMeta_AttestationDataSnapshot) Reset() { + *x = ClientMeta_AttestationDataSnapshot{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[84] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceDropRPCData) String() string { +func (x *ClientMeta_AttestationDataSnapshot) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceDropRPCData) ProtoMessage() {} +func (*ClientMeta_AttestationDataSnapshot) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceDropRPCData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[84] +func (x *ClientMeta_AttestationDataSnapshot) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9351,44 +9461,67 @@ func (x *ClientMeta_AdditionalLibP2PTraceDropRPCData) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceDropRPCData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceDropRPCData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 56} +// Deprecated: Use ClientMeta_AttestationDataSnapshot.ProtoReflect.Descriptor instead. +func (*ClientMeta_AttestationDataSnapshot) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 54} } -func (x *ClientMeta_AdditionalLibP2PTraceDropRPCData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AttestationDataSnapshot) GetRequestedAtSlotStartDiffMs() *wrapperspb.UInt64Value { if x != nil { - return x.Metadata + return x.RequestedAtSlotStartDiffMs } return nil } -// AdditionalLibP2PTraceRPCMetaControlIHaveData: Holds additional data for a RPC meta control i have event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData struct { +func (x *ClientMeta_AttestationDataSnapshot) GetRequestDurationMs() *wrapperspb.UInt64Value { + if x != nil { + return x.RequestDurationMs + } + return nil +} + +func (x *ClientMeta_AttestationDataSnapshot) GetTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +type ClientMeta_AdditionalEthV1ValidatorAttestationDataData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + // Source contains information for the best currently justified checkpoint. + Source *ClientMeta_AdditionalEthV1AttestationSourceV2Data `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` + // Target contains information of the block at the start of the current + // epoch. + Target *ClientMeta_AdditionalEthV1AttestationTargetV2Data `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"` + // Epoch contains the epoch information for the beacon committee. + Epoch *EpochV2 `protobuf:"bytes,3,opt,name=epoch,proto3" json:"epoch,omitempty"` + // Slot contains the slot information for the beacon committee. + Slot *SlotV2 `protobuf:"bytes,4,opt,name=slot,proto3" json:"slot,omitempty"` + // AttestationDataSnapshot is the snapshot of the attestation data + Snapshot *ClientMeta_AttestationDataSnapshot `protobuf:"bytes,5,opt,name=Snapshot,json=snapshot,proto3" json:"Snapshot,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData{} +func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) Reset() { + *x = ClientMeta_AdditionalEthV1ValidatorAttestationDataData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[85] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) String() string { +func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) ProtoMessage() {} +func (*ClientMeta_AdditionalEthV1ValidatorAttestationDataData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[85] +func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9399,92 +9532,77 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 57} +// Deprecated: Use ClientMeta_AdditionalEthV1ValidatorAttestationDataData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalEthV1ValidatorAttestationDataData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 55} } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) GetSource() *ClientMeta_AdditionalEthV1AttestationSourceV2Data { if x != nil { - return x.Metadata + return x.Source } return nil } -// AdditionalLibP2PTraceRPCMetaControlIWantData: Holds additional data for a RPC meta control i want event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` -} - -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[86] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) GetTarget() *ClientMeta_AdditionalEthV1AttestationTargetV2Data { + if x != nil { + return x.Target } + return nil } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData) ProtoMessage() {} - -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[86] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) GetEpoch() *EpochV2 { + if x != nil { + return x.Epoch } - return mi.MessageOf(x) + return nil } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 58} +func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) GetSlot() *SlotV2 { + if x != nil { + return x.Slot + } + return nil } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalEthV1ValidatorAttestationDataData) GetSnapshot() *ClientMeta_AttestationDataSnapshot { if x != nil { - return x.Metadata + return x.Snapshot } return nil } -// AdditionalLibP2PTraceRPCMetaControlIDontWantData: Holds additional data for a RPC meta control i dont want event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData struct { +type ClientMeta_AdditionalEthV1EventsBlobSidecarData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + // Epoch contains the epoch information for the blob sidecar. + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + // Slot contains the slot information for the blob sidecar. + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` + // Propagation contains information about the propagation of the blob + // sidecar. + Propagation *PropagationV2 `protobuf:"bytes,3,opt,name=propagation,proto3" json:"propagation,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData{} +func (x *ClientMeta_AdditionalEthV1EventsBlobSidecarData) Reset() { + *x = ClientMeta_AdditionalEthV1EventsBlobSidecarData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[87] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) String() string { +func (x *ClientMeta_AdditionalEthV1EventsBlobSidecarData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) ProtoMessage() {} +func (*ClientMeta_AdditionalEthV1EventsBlobSidecarData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[87] +func (x *ClientMeta_AdditionalEthV1EventsBlobSidecarData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9495,44 +9613,63 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) ProtoRefle return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 59} +// Deprecated: Use ClientMeta_AdditionalEthV1EventsBlobSidecarData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalEthV1EventsBlobSidecarData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 56} } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalEthV1EventsBlobSidecarData) GetEpoch() *EpochV2 { if x != nil { - return x.Metadata + return x.Epoch } return nil } -// AdditionalLibP2PTraceRPCMetaControlGraftData: Holds additional data for a RPC meta control graft event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData struct { +func (x *ClientMeta_AdditionalEthV1EventsBlobSidecarData) GetSlot() *SlotV2 { + if x != nil { + return x.Slot + } + return nil +} + +func (x *ClientMeta_AdditionalEthV1EventsBlobSidecarData) GetPropagation() *PropagationV2 { + if x != nil { + return x.Propagation + } + return nil +} + +type ClientMeta_AdditionalEthV1EventsDataColumnSidecarData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + // Epoch contains the epoch information for the data column sidecar. + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + // Slot contains the slot information for the data column sidecar. + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` + // Propagation contains information about the propagation of the data column + // sidecar. + Propagation *PropagationV2 `protobuf:"bytes,3,opt,name=propagation,proto3" json:"propagation,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData{} +func (x *ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) Reset() { + *x = ClientMeta_AdditionalEthV1EventsDataColumnSidecarData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[88] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) String() string { +func (x *ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) ProtoMessage() {} +func (*ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[88] +func (x *ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9543,44 +9680,66 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 60} +// Deprecated: Use ClientMeta_AdditionalEthV1EventsDataColumnSidecarData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 57} } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) GetEpoch() *EpochV2 { if x != nil { - return x.Metadata + return x.Epoch } return nil } -// AdditionalLibP2PTraceRPCMetaControlPruneData: Holds additional data for a RPC meta control prune event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData struct { +func (x *ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) GetSlot() *SlotV2 { + if x != nil { + return x.Slot + } + return nil +} + +func (x *ClientMeta_AdditionalEthV1EventsDataColumnSidecarData) GetPropagation() *PropagationV2 { + if x != nil { + return x.Propagation + } + return nil +} + +type ClientMeta_AdditionalEthV1BeaconBlobSidecarData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + // Epoch contains the epoch information for the blob sidecar. + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + // Slot contains the slot information for the blob sidecar. + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` + // DataSize contains the size of the blob sidecar in bytes. + DataSize *wrapperspb.UInt64Value `protobuf:"bytes,3,opt,name=data_size,proto3" json:"data_size,omitempty"` + // VersionedHash is the versioned hash for the blob sidecar. + VersionedHash string `protobuf:"bytes,4,opt,name=versioned_hash,proto3" json:"versioned_hash,omitempty"` + // DataEmptySize contains the amount of empty bytes of the blob sidecar. + DataEmptySize *wrapperspb.UInt64Value `protobuf:"bytes,5,opt,name=data_empty_size,proto3" json:"data_empty_size,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData{} +func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) Reset() { + *x = ClientMeta_AdditionalEthV1BeaconBlobSidecarData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[89] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) String() string { +func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) ProtoMessage() {} +func (*ClientMeta_AdditionalEthV1BeaconBlobSidecarData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[89] +func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9591,92 +9750,91 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 61} +// Deprecated: Use ClientMeta_AdditionalEthV1BeaconBlobSidecarData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalEthV1BeaconBlobSidecarData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 58} } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) GetEpoch() *EpochV2 { if x != nil { - return x.Metadata + return x.Epoch } return nil } -// AdditionalLibP2PTraceJoinData: Holds additional data for a join event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceJoinData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` -} - -func (x *ClientMeta_AdditionalLibP2PTraceJoinData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceJoinData{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[90] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) GetSlot() *SlotV2 { + if x != nil { + return x.Slot } + return nil } -func (x *ClientMeta_AdditionalLibP2PTraceJoinData) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ClientMeta_AdditionalLibP2PTraceJoinData) ProtoMessage() {} - -func (x *ClientMeta_AdditionalLibP2PTraceJoinData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[90] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) GetDataSize() *wrapperspb.UInt64Value { + if x != nil { + return x.DataSize } - return mi.MessageOf(x) + return nil } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceJoinData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceJoinData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 62} +func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) GetVersionedHash() string { + if x != nil { + return x.VersionedHash + } + return "" } -func (x *ClientMeta_AdditionalLibP2PTraceJoinData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalEthV1BeaconBlobSidecarData) GetDataEmptySize() *wrapperspb.UInt64Value { if x != nil { - return x.Metadata + return x.DataEmptySize } return nil } -// AdditionalLibP2PTraceLeaveData: Holds additional data for a leave event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceLeaveData struct { +type ClientMeta_AdditionalBeaconP2PAttestationData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + // Source contains information for the best currently justified checkpoint. + Source *ClientMeta_AdditionalEthV1AttestationSourceV2Data `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` + // Target contains information of the block at the start of the current + // epoch. + Target *ClientMeta_AdditionalEthV1AttestationTargetV2Data `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"` + // Slot contains the slot information for the attestation. + Slot *SlotV2 `protobuf:"bytes,3,opt,name=slot,proto3" json:"slot,omitempty"` + // Epoch contains the epoch information for the attestation. + Epoch *EpochV2 `protobuf:"bytes,4,opt,name=epoch,proto3" json:"epoch,omitempty"` + // Propagation contains information about the propagation of the + // attestation. + Propagation *PropagationV2 `protobuf:"bytes,5,opt,name=propagation,proto3" json:"propagation,omitempty"` + // AttestingValidator contains data about the validator that created the + // attestation. Note: only available for unaggregated attestations. + AttestingValidator *AttestingValidatorV2 `protobuf:"bytes,6,opt,name=attesting_validator,proto3" json:"attesting_validator,omitempty"` + // Peer contains information on the peer that sent us the attestation. + Peer *libp2p.Peer `protobuf:"bytes,7,opt,name=peer,proto3" json:"peer,omitempty"` + // Subnet is the subnet that the attestation was sent on. + Subnet *wrapperspb.UInt32Value `protobuf:"bytes,8,opt,name=subnet,proto3" json:"subnet,omitempty"` + // Validated is if the attestation was validated. + Validated *wrapperspb.BoolValue `protobuf:"bytes,9,opt,name=validated,proto3" json:"validated,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceLeaveData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceLeaveData{} +func (x *ClientMeta_AdditionalBeaconP2PAttestationData) Reset() { + *x = ClientMeta_AdditionalBeaconP2PAttestationData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[91] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceLeaveData) String() string { +func (x *ClientMeta_AdditionalBeaconP2PAttestationData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceLeaveData) ProtoMessage() {} +func (*ClientMeta_AdditionalBeaconP2PAttestationData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceLeaveData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[91] +func (x *ClientMeta_AdditionalBeaconP2PAttestationData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9687,92 +9845,106 @@ func (x *ClientMeta_AdditionalLibP2PTraceLeaveData) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceLeaveData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceLeaveData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 63} +// Deprecated: Use ClientMeta_AdditionalBeaconP2PAttestationData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalBeaconP2PAttestationData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 59} } -func (x *ClientMeta_AdditionalLibP2PTraceLeaveData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalBeaconP2PAttestationData) GetSource() *ClientMeta_AdditionalEthV1AttestationSourceV2Data { if x != nil { - return x.Metadata + return x.Source } return nil } -// AdditionalLibP2PTraceGraftData: Holds additional data for a graft event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceGraftData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *ClientMeta_AdditionalBeaconP2PAttestationData) GetTarget() *ClientMeta_AdditionalEthV1AttestationTargetV2Data { + if x != nil { + return x.Target + } + return nil +} - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` +func (x *ClientMeta_AdditionalBeaconP2PAttestationData) GetSlot() *SlotV2 { + if x != nil { + return x.Slot + } + return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGraftData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceGraftData{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[92] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ClientMeta_AdditionalBeaconP2PAttestationData) GetEpoch() *EpochV2 { + if x != nil { + return x.Epoch } + return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGraftData) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ClientMeta_AdditionalBeaconP2PAttestationData) GetPropagation() *PropagationV2 { + if x != nil { + return x.Propagation + } + return nil } -func (*ClientMeta_AdditionalLibP2PTraceGraftData) ProtoMessage() {} +func (x *ClientMeta_AdditionalBeaconP2PAttestationData) GetAttestingValidator() *AttestingValidatorV2 { + if x != nil { + return x.AttestingValidator + } + return nil +} -func (x *ClientMeta_AdditionalLibP2PTraceGraftData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[92] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ClientMeta_AdditionalBeaconP2PAttestationData) GetPeer() *libp2p.Peer { + if x != nil { + return x.Peer } - return mi.MessageOf(x) + return nil } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGraftData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceGraftData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 64} +func (x *ClientMeta_AdditionalBeaconP2PAttestationData) GetSubnet() *wrapperspb.UInt32Value { + if x != nil { + return x.Subnet + } + return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGraftData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalBeaconP2PAttestationData) GetValidated() *wrapperspb.BoolValue { if x != nil { - return x.Metadata + return x.Validated } return nil } -// AdditionalLibP2PTracePruneData: Holds additional data for a prune event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTracePruneData struct { +type ClientMeta_AdditionalEthV1ProposerDutyData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + // Epoch contains the epoch information for the proposer duty. + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + // Slot contains the slot information for the proposer duty. + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` + // StateID is the state ID when the proposer duty was requested. + // This can be used to determine if the proposer duty was canonical + // by checking if the state_id is 'finalized'. + StateId string `protobuf:"bytes,3,opt,name=state_id,proto3" json:"state_id,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTracePruneData) Reset() { - *x = ClientMeta_AdditionalLibP2PTracePruneData{} +func (x *ClientMeta_AdditionalEthV1ProposerDutyData) Reset() { + *x = ClientMeta_AdditionalEthV1ProposerDutyData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[93] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTracePruneData) String() string { +func (x *ClientMeta_AdditionalEthV1ProposerDutyData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTracePruneData) ProtoMessage() {} +func (*ClientMeta_AdditionalEthV1ProposerDutyData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTracePruneData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[93] +func (x *ClientMeta_AdditionalEthV1ProposerDutyData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9783,44 +9955,70 @@ func (x *ClientMeta_AdditionalLibP2PTracePruneData) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTracePruneData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTracePruneData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 65} -} - -func (x *ClientMeta_AdditionalLibP2PTracePruneData) GetMetadata() *libp2p.TraceEventMetadata { +// Deprecated: Use ClientMeta_AdditionalEthV1ProposerDutyData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalEthV1ProposerDutyData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 60} +} + +func (x *ClientMeta_AdditionalEthV1ProposerDutyData) GetEpoch() *EpochV2 { if x != nil { - return x.Metadata + return x.Epoch } return nil } -// AdditionalLibP2PTraceDuplicateMessageData: Holds additional data for a duplicate message event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceDuplicateMessageData struct { +func (x *ClientMeta_AdditionalEthV1ProposerDutyData) GetSlot() *SlotV2 { + if x != nil { + return x.Slot + } + return nil +} + +func (x *ClientMeta_AdditionalEthV1ProposerDutyData) GetStateId() string { + if x != nil { + return x.StateId + } + return "" +} + +type ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + // Block contains the information about the block that we are deriving the + // elaborated attestation from. + Block *BlockIdentifier `protobuf:"bytes,1,opt,name=block,proto3" json:"block,omitempty"` + // PositionInBlock is the position of the attestation in the block. + PositionInBlock *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=position_in_block,proto3" json:"position_in_block,omitempty"` + // Epoch contains the epoch information for the slot of the attestation. + Epoch *EpochV2 `protobuf:"bytes,3,opt,name=epoch,proto3" json:"epoch,omitempty"` + // Slot contains the slot information for the slot of the attestation. + Slot *SlotV2 `protobuf:"bytes,4,opt,name=slot,proto3" json:"slot,omitempty"` + // Source contains information for source of the attestation. + Source *ClientMeta_AdditionalEthV1AttestationSourceV2Data `protobuf:"bytes,5,opt,name=source,proto3" json:"source,omitempty"` + // Target contains information of the block at the start of the current + // epoch. + Target *ClientMeta_AdditionalEthV1AttestationTargetV2Data `protobuf:"bytes,6,opt,name=target,proto3" json:"target,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceDuplicateMessageData{} +func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) Reset() { + *x = ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[94] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) String() string { +func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) ProtoMessage() {} +func (*ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[94] +func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9831,20 +10029,55 @@ func (x *ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) ProtoReflect() pr return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceDuplicateMessageData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 66} +// Deprecated: Use ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 61} } -func (x *ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) GetBlock() *BlockIdentifier { if x != nil { - return x.Metadata + return x.Block } return nil } -// AdditionalLibP2PTraceDeliverMessageData: Holds additional data for a deliver message event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceDeliverMessageData struct { +func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) GetPositionInBlock() *wrapperspb.UInt64Value { + if x != nil { + return x.PositionInBlock + } + return nil +} + +func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) GetEpoch() *EpochV2 { + if x != nil { + return x.Epoch + } + return nil +} + +func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) GetSlot() *SlotV2 { + if x != nil { + return x.Slot + } + return nil +} + +func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) GetSource() *ClientMeta_AdditionalEthV1AttestationSourceV2Data { + if x != nil { + return x.Source + } + return nil +} + +func (x *ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData) GetTarget() *ClientMeta_AdditionalEthV1AttestationTargetV2Data { + if x != nil { + return x.Target + } + return nil +} + +// AdditionalLibP2PTraceAddPeerData: Holds additional data for an add peer event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceAddPeerData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -9852,23 +10085,23 @@ type ClientMeta_AdditionalLibP2PTraceDeliverMessageData struct { Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceDeliverMessageData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceDeliverMessageData{} +func (x *ClientMeta_AdditionalLibP2PTraceAddPeerData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceAddPeerData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[95] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceDeliverMessageData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceAddPeerData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceDeliverMessageData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceAddPeerData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceDeliverMessageData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[95] +func (x *ClientMeta_AdditionalLibP2PTraceAddPeerData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9879,20 +10112,20 @@ func (x *ClientMeta_AdditionalLibP2PTraceDeliverMessageData) ProtoReflect() prot return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceDeliverMessageData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceDeliverMessageData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 67} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceAddPeerData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceAddPeerData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 62} } -func (x *ClientMeta_AdditionalLibP2PTraceDeliverMessageData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalLibP2PTraceAddPeerData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { return x.Metadata } return nil } -// AdditionalLibP2PTracePublishMessageData: Holds additional data for a publish message event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTracePublishMessageData struct { +// AdditionalLibP2PTraceRemovePeerData: Holds additional data for a remove peer event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceRemovePeerData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -9900,23 +10133,23 @@ type ClientMeta_AdditionalLibP2PTracePublishMessageData struct { Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTracePublishMessageData) Reset() { - *x = ClientMeta_AdditionalLibP2PTracePublishMessageData{} +func (x *ClientMeta_AdditionalLibP2PTraceRemovePeerData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceRemovePeerData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[96] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTracePublishMessageData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceRemovePeerData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTracePublishMessageData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceRemovePeerData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTracePublishMessageData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[96] +func (x *ClientMeta_AdditionalLibP2PTraceRemovePeerData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9927,20 +10160,20 @@ func (x *ClientMeta_AdditionalLibP2PTracePublishMessageData) ProtoReflect() prot return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTracePublishMessageData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTracePublishMessageData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 68} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRemovePeerData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceRemovePeerData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 63} } -func (x *ClientMeta_AdditionalLibP2PTracePublishMessageData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalLibP2PTraceRemovePeerData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { return x.Metadata } return nil } -// AdditionalLibP2PTraceRejectMessageData: Holds additional data for a reject message event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceRejectMessageData struct { +// AdditionalLibP2PTraceRecvRPCData: Holds additional data for a receive RPC event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceRecvRPCData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -9948,23 +10181,23 @@ type ClientMeta_AdditionalLibP2PTraceRejectMessageData struct { Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceRejectMessageData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceRejectMessageData{} +func (x *ClientMeta_AdditionalLibP2PTraceRecvRPCData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceRecvRPCData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[97] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceRejectMessageData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceRecvRPCData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceRejectMessageData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceRecvRPCData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceRejectMessageData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[97] +func (x *ClientMeta_AdditionalLibP2PTraceRecvRPCData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9975,20 +10208,20 @@ func (x *ClientMeta_AdditionalLibP2PTraceRejectMessageData) ProtoReflect() proto return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRejectMessageData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceRejectMessageData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 69} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRecvRPCData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceRecvRPCData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 64} } -func (x *ClientMeta_AdditionalLibP2PTraceRejectMessageData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalLibP2PTraceRecvRPCData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { return x.Metadata } return nil } -// AdditionalLibP2PTraceConnectedData: Holds additional data for a connected event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceConnectedData struct { +// AdditionalLibP2PTraceSendRPCData: Holds additional data for a send RPC event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceSendRPCData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -9996,23 +10229,23 @@ type ClientMeta_AdditionalLibP2PTraceConnectedData struct { Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceConnectedData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceConnectedData{} +func (x *ClientMeta_AdditionalLibP2PTraceSendRPCData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceSendRPCData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[98] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceConnectedData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceSendRPCData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceConnectedData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceSendRPCData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceConnectedData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[98] +func (x *ClientMeta_AdditionalLibP2PTraceSendRPCData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10023,20 +10256,20 @@ func (x *ClientMeta_AdditionalLibP2PTraceConnectedData) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceConnectedData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceConnectedData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 70} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceSendRPCData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceSendRPCData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 65} } -func (x *ClientMeta_AdditionalLibP2PTraceConnectedData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalLibP2PTraceSendRPCData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { return x.Metadata } return nil } -// AdditionalLibP2PTraceDisconnectedData: Holds additional data for a disconnected event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceDisconnectedData struct { +// AdditionalLibP2PTraceDropRPCData: Holds additional data for a drop RPC event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceDropRPCData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -10044,23 +10277,23 @@ type ClientMeta_AdditionalLibP2PTraceDisconnectedData struct { Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceDisconnectedData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceDisconnectedData{} +func (x *ClientMeta_AdditionalLibP2PTraceDropRPCData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceDropRPCData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[99] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceDisconnectedData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceDropRPCData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceDisconnectedData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceDropRPCData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceDisconnectedData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[99] +func (x *ClientMeta_AdditionalLibP2PTraceDropRPCData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10071,20 +10304,20 @@ func (x *ClientMeta_AdditionalLibP2PTraceDisconnectedData) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceDisconnectedData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceDisconnectedData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 71} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceDropRPCData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceDropRPCData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 66} } -func (x *ClientMeta_AdditionalLibP2PTraceDisconnectedData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalLibP2PTraceDropRPCData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { return x.Metadata } return nil } -// AdditionalLibP2PTraceSyntheticHeartbeatData: Holds additional data for a synthetic heartbeat event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData struct { +// AdditionalLibP2PTraceRPCMetaControlIHaveData: Holds additional data for a RPC meta control i have event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -10092,23 +10325,23 @@ type ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData struct { Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData{} +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[100] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[100] +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10119,20 +10352,20 @@ func (x *ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 72} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 67} } -func (x *ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { return x.Metadata } return nil } -// AdditionalLibP2PTraceHandleMetadataData: Holds additional data for a handle metadata event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceHandleMetadataData struct { +// AdditionalLibP2PTraceRPCMetaControlIWantData: Holds additional data for a RPC meta control i want event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -10140,23 +10373,23 @@ type ClientMeta_AdditionalLibP2PTraceHandleMetadataData struct { Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceHandleMetadataData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceHandleMetadataData{} +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[101] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceHandleMetadataData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceHandleMetadataData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceHandleMetadataData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[101] +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10167,20 +10400,20 @@ func (x *ClientMeta_AdditionalLibP2PTraceHandleMetadataData) ProtoReflect() prot return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceHandleMetadataData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceHandleMetadataData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 73} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 68} } -func (x *ClientMeta_AdditionalLibP2PTraceHandleMetadataData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { return x.Metadata } return nil } -// AdditionalLibP2PTraceHandleStatusData: Holds additional data for a handle status event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceHandleStatusData struct { +// AdditionalLibP2PTraceRPCMetaControlIDontWantData: Holds additional data for a RPC meta control i dont want event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -10188,23 +10421,23 @@ type ClientMeta_AdditionalLibP2PTraceHandleStatusData struct { Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceHandleStatusData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceHandleStatusData{} +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[102] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceHandleStatusData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceHandleStatusData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceHandleStatusData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[102] +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10215,19 +10448,20 @@ func (x *ClientMeta_AdditionalLibP2PTraceHandleStatusData) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceHandleStatusData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceHandleStatusData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 74} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 69} } -func (x *ClientMeta_AdditionalLibP2PTraceHandleStatusData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { return x.Metadata } return nil } -type ClientMeta_AdditionalLibP2PTraceIdentifyData struct { +// AdditionalLibP2PTraceRPCMetaControlGraftData: Holds additional data for a RPC meta control graft event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -10235,23 +10469,23 @@ type ClientMeta_AdditionalLibP2PTraceIdentifyData struct { Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceIdentifyData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceIdentifyData{} +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[103] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceIdentifyData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceIdentifyData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceIdentifyData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[103] +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10262,52 +10496,44 @@ func (x *ClientMeta_AdditionalLibP2PTraceIdentifyData) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceIdentifyData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceIdentifyData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 75} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 70} } -func (x *ClientMeta_AdditionalLibP2PTraceIdentifyData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { return x.Metadata } return nil } -// AdditionalLibP2PTraceRpcDataColumnCustodyProbeData: Holds additional data for a custody probe event in LibP2P Trace RPC. -type ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData struct { +// AdditionalLibP2PTraceRPCMetaControlPruneData: Holds additional data for a RPC meta control prune event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - // Epoch contains the epoch information for the probe event - Epoch *EpochV2 `protobuf:"bytes,2,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Slot contains the slot information for the probe event. - Slot *SlotV2 `protobuf:"bytes,3,opt,name=slot,proto3" json:"slot,omitempty"` - // WallclockEpoch contains the epoch information for the probe event in the wall clock time when the request was sent. - WallclockEpoch *EpochV2 `protobuf:"bytes,4,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` - // WallclockSlot contains the slot information for the probe event in the wall clock time when the request was sent. - WallclockSlot *SlotV2 `protobuf:"bytes,5,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData{} +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[104] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[104] +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10318,48 +10544,68 @@ func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) ProtoRef return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 76} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 71} } -func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { return x.Metadata } return nil } -func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) GetEpoch() *EpochV2 { - if x != nil { - return x.Epoch - } - return nil +// AdditionalLibP2PTraceJoinData: Holds additional data for a join event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceJoinData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) GetSlot() *SlotV2 { - if x != nil { - return x.Slot +func (x *ClientMeta_AdditionalLibP2PTraceJoinData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceJoinData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[100] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) GetWallclockEpoch() *EpochV2 { - if x != nil { - return x.WallclockEpoch +func (x *ClientMeta_AdditionalLibP2PTraceJoinData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientMeta_AdditionalLibP2PTraceJoinData) ProtoMessage() {} + +func (x *ClientMeta_AdditionalLibP2PTraceJoinData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[100] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) GetWallclockSlot() *SlotV2 { +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceJoinData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceJoinData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 72} +} + +func (x *ClientMeta_AdditionalLibP2PTraceJoinData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { - return x.WallclockSlot + return x.Metadata } return nil } -// AdditionalLibP2PTraceRPCMetaSubscriptionData: Holds additional data for a RPC meta subscription event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData struct { +// AdditionalLibP2PTraceLeaveData: Holds additional data for a leave event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceLeaveData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -10367,23 +10613,23 @@ type ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData struct { Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData{} +func (x *ClientMeta_AdditionalLibP2PTraceLeaveData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceLeaveData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[105] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceLeaveData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceLeaveData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[105] +func (x *ClientMeta_AdditionalLibP2PTraceLeaveData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10394,20 +10640,20 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 77} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceLeaveData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceLeaveData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 73} } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalLibP2PTraceLeaveData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { return x.Metadata } return nil } -// AdditionalLibP2PTraceRPCMetaMessageData: Holds additional data for a RPC meta message event in LibP2P tracing. -type ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData struct { +// AdditionalLibP2PTraceGraftData: Holds additional data for a graft event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceGraftData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -10415,23 +10661,23 @@ type ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData struct { Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData{} +func (x *ClientMeta_AdditionalLibP2PTraceGraftData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceGraftData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[106] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceGraftData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceGraftData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[106] +func (x *ClientMeta_AdditionalLibP2PTraceGraftData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10442,61 +10688,44 @@ func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) ProtoReflect() prot return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 78} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGraftData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceGraftData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 74} } -func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalLibP2PTraceGraftData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { return x.Metadata } return nil } -// AdditionalLibP2PTraceGossipSubBeaconBlockData contains additional data about the gossip sub beacon block event. -type ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData struct { +// AdditionalLibP2PTracePruneData: Holds additional data for a prune event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTracePruneData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Epoch contains the epoch information for the beacon block. - Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Slot contains the slot information for the beacon block. - Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` - // WallclockEpoch contains the epoch information for the beacon block in the wall clock time. - WallclockEpoch *EpochV2 `protobuf:"bytes,3,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` - // WallclockSlot contains the slot information for the beacon block in the wall clock time. - WallclockSlot *SlotV2 `protobuf:"bytes,4,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` - // Propagation contains information about the propagation of the beacon block. - Propagation *PropagationV2 `protobuf:"bytes,5,opt,name=propagation,proto3" json:"propagation,omitempty"` - // Metadata contains additional trace event metadata. - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` - // Topic is the gossip sub topic the beacon block was received on. - Topic *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=topic,proto3" json:"topic,omitempty"` - // MessageSize is the size of the beacon block message in bytes. - MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,8,opt,name=message_size,proto3" json:"message_size,omitempty"` - // MessageID is a unique identifier for the beacon block message. - MessageId *wrapperspb.StringValue `protobuf:"bytes,9,opt,name=message_id,proto3" json:"message_id,omitempty"` + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData{} +func (x *ClientMeta_AdditionalLibP2PTracePruneData) Reset() { + *x = ClientMeta_AdditionalLibP2PTracePruneData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[107] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) String() string { +func (x *ClientMeta_AdditionalLibP2PTracePruneData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTracePruneData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[107] +func (x *ClientMeta_AdditionalLibP2PTracePruneData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10507,100 +10736,92 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) ProtoReflect( return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 79} +// Deprecated: Use ClientMeta_AdditionalLibP2PTracePruneData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTracePruneData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 75} } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTracePruneData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { - return x.Epoch + return x.Metadata } return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) GetSlot() *SlotV2 { - if x != nil { - return x.Slot - } - return nil -} +// AdditionalLibP2PTraceDuplicateMessageData: Holds additional data for a duplicate message event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceDuplicateMessageData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) GetWallclockEpoch() *EpochV2 { - if x != nil { - return x.WallclockEpoch - } - return nil + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) GetWallclockSlot() *SlotV2 { - if x != nil { - return x.WallclockSlot +func (x *ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceDuplicateMessageData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[104] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) GetPropagation() *PropagationV2 { - if x != nil { - return x.Propagation - } - return nil +func (x *ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) GetMetadata() *libp2p.TraceEventMetadata { - if x != nil { - return x.Metadata - } - return nil -} +func (*ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) GetTopic() *wrapperspb.StringValue { - if x != nil { - return x.Topic +func (x *ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[104] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) GetMessageSize() *wrapperspb.UInt32Value { - if x != nil { - return x.MessageSize - } - return nil +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceDuplicateMessageData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 76} } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) GetMessageId() *wrapperspb.StringValue { +func (x *ClientMeta_AdditionalLibP2PTraceDuplicateMessageData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { - return x.MessageId + return x.Metadata } return nil } -type ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData struct { +// AdditionalLibP2PTraceDeliverMessageData: Holds additional data for a deliver message event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceDeliverMessageData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Epoch contains the epoch information for the source. - Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData{} +func (x *ClientMeta_AdditionalLibP2PTraceDeliverMessageData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceDeliverMessageData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[108] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceDeliverMessageData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceDeliverMessageData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[108] +func (x *ClientMeta_AdditionalLibP2PTraceDeliverMessageData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10611,44 +10832,44 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) P return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 80} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceDeliverMessageData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceDeliverMessageData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 77} } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTraceDeliverMessageData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { - return x.Epoch + return x.Metadata } return nil } -type ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData struct { +// AdditionalLibP2PTracePublishMessageData: Holds additional data for a publish message event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTracePublishMessageData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Epoch contains the epoch information for the target. - Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData{} +func (x *ClientMeta_AdditionalLibP2PTracePublishMessageData) Reset() { + *x = ClientMeta_AdditionalLibP2PTracePublishMessageData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[109] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) String() string { +func (x *ClientMeta_AdditionalLibP2PTracePublishMessageData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTracePublishMessageData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[109] +func (x *ClientMeta_AdditionalLibP2PTracePublishMessageData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10659,69 +10880,44 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) P return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 81} +// Deprecated: Use ClientMeta_AdditionalLibP2PTracePublishMessageData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTracePublishMessageData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 78} } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTracePublishMessageData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { - return x.Epoch + return x.Metadata } return nil } -type ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData struct { +// AdditionalLibP2PTraceRejectMessageData: Holds additional data for a reject message event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceRejectMessageData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Source contains information for the best currently justified checkpoint. - Source *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` - // Target contains information of the block at the start of the current - // epoch. - Target *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"` - // Slot contains the slot information for the attestation. - Slot *SlotV2 `protobuf:"bytes,3,opt,name=slot,proto3" json:"slot,omitempty"` - // Epoch contains the epoch information for the attestation. - Epoch *EpochV2 `protobuf:"bytes,4,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Propagation contains information about the propagation of the - // attestation. - Propagation *PropagationV2 `protobuf:"bytes,5,opt,name=propagation,proto3" json:"propagation,omitempty"` - // AttestingValidator contains data about the validator that created the - // attestation. Note: only available for unaggregated attestations. - AttestingValidator *AttestingValidatorV2 `protobuf:"bytes,6,opt,name=attesting_validator,proto3" json:"attesting_validator,omitempty"` - // WallclockEpoch contains the epoch information for the attestation on the wall clock when the attestation was received. - WallclockEpoch *EpochV2 `protobuf:"bytes,7,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` - // WallclockSlot contains the slot information for the attestation on the wall clock when the attestation was received. - WallclockSlot *SlotV2 `protobuf:"bytes,8,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` - // Metadata contains additional trace event metadata. - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,9,opt,name=metadata,proto3" json:"metadata,omitempty"` - // Topic is the gossip sub topic the beacon block was received on. - Topic *wrapperspb.StringValue `protobuf:"bytes,10,opt,name=topic,proto3" json:"topic,omitempty"` - // MessageSize is the size of the beacon block message in bytes. - MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,11,opt,name=message_size,proto3" json:"message_size,omitempty"` - // MessageID is a unique identifier for the beacon block message. - MessageId *wrapperspb.StringValue `protobuf:"bytes,12,opt,name=message_id,proto3" json:"message_id,omitempty"` + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData{} +func (x *ClientMeta_AdditionalLibP2PTraceRejectMessageData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceRejectMessageData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[110] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceRejectMessageData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceRejectMessageData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[110] +func (x *ClientMeta_AdditionalLibP2PTraceRejectMessageData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10732,139 +10928,92 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) ProtoRe return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 82} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRejectMessageData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceRejectMessageData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 79} } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetSource() *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData { +func (x *ClientMeta_AdditionalLibP2PTraceRejectMessageData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { - return x.Source + return x.Metadata } return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetTarget() *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData { - if x != nil { - return x.Target - } - return nil -} +// AdditionalLibP2PTraceConnectedData: Holds additional data for a connected event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceConnectedData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetSlot() *SlotV2 { - if x != nil { - return x.Slot - } - return nil + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetEpoch() *EpochV2 { - if x != nil { - return x.Epoch +func (x *ClientMeta_AdditionalLibP2PTraceConnectedData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceConnectedData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[108] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetPropagation() *PropagationV2 { - if x != nil { - return x.Propagation - } - return nil +func (x *ClientMeta_AdditionalLibP2PTraceConnectedData) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetAttestingValidator() *AttestingValidatorV2 { - if x != nil { - return x.AttestingValidator - } - return nil -} +func (*ClientMeta_AdditionalLibP2PTraceConnectedData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetWallclockEpoch() *EpochV2 { - if x != nil { - return x.WallclockEpoch +func (x *ClientMeta_AdditionalLibP2PTraceConnectedData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[108] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetWallclockSlot() *SlotV2 { - if x != nil { - return x.WallclockSlot - } - return nil +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceConnectedData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceConnectedData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 80} } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalLibP2PTraceConnectedData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { return x.Metadata } return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetTopic() *wrapperspb.StringValue { - if x != nil { - return x.Topic - } - return nil -} - -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetMessageSize() *wrapperspb.UInt32Value { - if x != nil { - return x.MessageSize - } - return nil -} - -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetMessageId() *wrapperspb.StringValue { - if x != nil { - return x.MessageId - } - return nil -} - -type ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData struct { +// AdditionalLibP2PTraceDisconnectedData: Holds additional data for a disconnected event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceDisconnectedData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Epoch contains the epoch information for the aggregate and proof. - Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Slot contains the slot information for the aggregate and proof. - Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` - // WallclockEpoch contains the epoch information for the aggregate and proof in the wall clock time. - WallclockEpoch *EpochV2 `protobuf:"bytes,3,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` - // WallclockSlot contains the slot information for the aggregate and proof in the wall clock time. - WallclockSlot *SlotV2 `protobuf:"bytes,4,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` - // Propagation contains information about the propagation of the aggregate and proof. - Propagation *PropagationV2 `protobuf:"bytes,5,opt,name=propagation,proto3" json:"propagation,omitempty"` - // AggregatorIndex contains the index of the validator who created this aggregate. - AggregatorIndex *wrapperspb.UInt64Value `protobuf:"bytes,6,opt,name=aggregator_index,proto3" json:"aggregator_index,omitempty"` - // Metadata contains additional trace event metadata. - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,7,opt,name=metadata,proto3" json:"metadata,omitempty"` - // Topic is the gossip sub topic the aggregate and proof was received on. - Topic *wrapperspb.StringValue `protobuf:"bytes,8,opt,name=topic,proto3" json:"topic,omitempty"` - // MessageSize is the size of the aggregate and proof message in bytes. - MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,9,opt,name=message_size,proto3" json:"message_size,omitempty"` - // MessageID is a unique identifier for the aggregate and proof message. - MessageId *wrapperspb.StringValue `protobuf:"bytes,10,opt,name=message_id,proto3" json:"message_id,omitempty"` + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData{} +func (x *ClientMeta_AdditionalLibP2PTraceDisconnectedData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceDisconnectedData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[111] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceDisconnectedData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceDisconnectedData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[111] +func (x *ClientMeta_AdditionalLibP2PTraceDisconnectedData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10875,108 +11024,125 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) ProtoRe return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 83} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceDisconnectedData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceDisconnectedData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 81} } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTraceDisconnectedData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { - return x.Epoch + return x.Metadata } return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetSlot() *SlotV2 { - if x != nil { - return x.Slot - } - return nil +// AdditionalLibP2PTraceSyntheticHeartbeatData: Holds additional data for a synthetic heartbeat event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetWallclockEpoch() *EpochV2 { - if x != nil { - return x.WallclockEpoch +func (x *ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[110] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetWallclockSlot() *SlotV2 { - if x != nil { - return x.WallclockSlot - } - return nil +func (x *ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetPropagation() *PropagationV2 { - if x != nil { - return x.Propagation +func (*ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) ProtoMessage() {} + +func (x *ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[110] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetAggregatorIndex() *wrapperspb.UInt64Value { - if x != nil { - return x.AggregatorIndex - } - return nil +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 82} } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetMetadata() *libp2p.TraceEventMetadata { +func (x *ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { return x.Metadata } return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetTopic() *wrapperspb.StringValue { - if x != nil { - return x.Topic +// AdditionalLibP2PTraceHandleMetadataData: Holds additional data for a handle metadata event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceHandleMetadataData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` +} + +func (x *ClientMeta_AdditionalLibP2PTraceHandleMetadataData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceHandleMetadataData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[111] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetMessageSize() *wrapperspb.UInt32Value { - if x != nil { - return x.MessageSize +func (x *ClientMeta_AdditionalLibP2PTraceHandleMetadataData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientMeta_AdditionalLibP2PTraceHandleMetadataData) ProtoMessage() {} + +func (x *ClientMeta_AdditionalLibP2PTraceHandleMetadataData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[111] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetMessageId() *wrapperspb.StringValue { +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceHandleMetadataData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceHandleMetadataData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 83} +} + +func (x *ClientMeta_AdditionalLibP2PTraceHandleMetadataData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { - return x.MessageId + return x.Metadata } return nil } -type ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData struct { +// AdditionalLibP2PTraceHandleStatusData: Holds additional data for a handle status event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceHandleStatusData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Epoch contains the epoch information for the blob sidecar. - Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Slot contains the slot information for the blob sidecar. - Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` - // WallclockEpoch contains the epoch information for the blob sidecar in the wall clock time. - WallclockEpoch *EpochV2 `protobuf:"bytes,3,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` - // WallclockSlot contains the slot information for the blob sidecar in the wall clock time. - WallclockSlot *SlotV2 `protobuf:"bytes,4,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` - // Propagation contains information about the propagation of the blob sidecar. - Propagation *PropagationV2 `protobuf:"bytes,5,opt,name=propagation,proto3" json:"propagation,omitempty"` - // Metadata contains additional trace event metadata. - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` - // Topic is the gossip sub topic the blob sidecar was received on. - Topic *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=topic,proto3" json:"topic,omitempty"` - // MessageSize is the size of the blob sidecar message in bytes. - MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,8,opt,name=message_size,proto3" json:"message_size,omitempty"` - // MessageID is a unique identifier for the blob sidecar message. - MessageId *wrapperspb.StringValue `protobuf:"bytes,9,opt,name=message_id,proto3" json:"message_id,omitempty"` + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData{} +func (x *ClientMeta_AdditionalLibP2PTraceHandleStatusData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceHandleStatusData{} if protoimpl.UnsafeEnabled { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10984,13 +11150,13 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) Reset() { } } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceHandleStatusData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceHandleStatusData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) ProtoReflect() protoreflect.Message { +func (x *ClientMeta_AdditionalLibP2PTraceHandleStatusData) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11002,116 +11168,99 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) ProtoReflect( return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) Descriptor() ([]byte, []int) { +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceHandleStatusData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceHandleStatusData) Descriptor() ([]byte, []int) { return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 84} } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTraceHandleStatusData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { - return x.Epoch + return x.Metadata } return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) GetSlot() *SlotV2 { - if x != nil { - return x.Slot - } - return nil +type ClientMeta_AdditionalLibP2PTraceIdentifyData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) GetWallclockEpoch() *EpochV2 { - if x != nil { - return x.WallclockEpoch +func (x *ClientMeta_AdditionalLibP2PTraceIdentifyData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceIdentifyData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[113] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) GetWallclockSlot() *SlotV2 { - if x != nil { - return x.WallclockSlot - } - return nil +func (x *ClientMeta_AdditionalLibP2PTraceIdentifyData) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) GetPropagation() *PropagationV2 { - if x != nil { - return x.Propagation +func (*ClientMeta_AdditionalLibP2PTraceIdentifyData) ProtoMessage() {} + +func (x *ClientMeta_AdditionalLibP2PTraceIdentifyData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[113] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) GetMetadata() *libp2p.TraceEventMetadata { +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceIdentifyData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceIdentifyData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 85} +} + +func (x *ClientMeta_AdditionalLibP2PTraceIdentifyData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { return x.Metadata } return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) GetTopic() *wrapperspb.StringValue { - if x != nil { - return x.Topic - } - return nil -} - -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) GetMessageSize() *wrapperspb.UInt32Value { - if x != nil { - return x.MessageSize - } - return nil -} - -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) GetMessageId() *wrapperspb.StringValue { - if x != nil { - return x.MessageId - } - return nil -} - -type ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData struct { +// AdditionalLibP2PTraceRpcDataColumnCustodyProbeData: Holds additional data for a custody probe event in LibP2P Trace RPC. +type ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Epoch contains the epoch information for the data column sidecar. - Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Slot contains the slot information for the data column sidecar. - Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` - // WallclockEpoch contains the epoch information for the data column sidecar in the wall clock time. - WallclockEpoch *EpochV2 `protobuf:"bytes,3,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` - // WallclockSlot contains the slot information for the data column sidecar in the wall clock time. - WallclockSlot *SlotV2 `protobuf:"bytes,4,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` - // Propagation contains information about the propagation of the data column sidecar. - Propagation *PropagationV2 `protobuf:"bytes,5,opt,name=propagation,proto3" json:"propagation,omitempty"` - // Metadata contains additional trace event metadata. - Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` - // Topic is the gossip sub topic the data column sidecar was received on. - Topic *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=topic,proto3" json:"topic,omitempty"` - // MessageSize is the size of the data column sidecar message in bytes. - MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,8,opt,name=message_size,proto3" json:"message_size,omitempty"` - // MessageID is a unique identifier for the data column sidecar message. - MessageId *wrapperspb.StringValue `protobuf:"bytes,9,opt,name=message_id,proto3" json:"message_id,omitempty"` + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + // Epoch contains the epoch information for the probe event + Epoch *EpochV2 `protobuf:"bytes,2,opt,name=epoch,proto3" json:"epoch,omitempty"` + // Slot contains the slot information for the probe event. + Slot *SlotV2 `protobuf:"bytes,3,opt,name=slot,proto3" json:"slot,omitempty"` + // WallclockEpoch contains the epoch information for the probe event in the wall clock time when the request was sent. + WallclockEpoch *EpochV2 `protobuf:"bytes,4,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` + // WallclockSlot contains the slot information for the probe event in the wall clock time when the request was sent. + WallclockSlot *SlotV2 `protobuf:"bytes,5,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) Reset() { - *x = ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData{} +func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[113] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) ProtoMessage() {} -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[113] +func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11122,100 +11271,120 @@ func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) ProtoRe return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 85} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 86} } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) GetMetadata() *libp2p.TraceEventMetadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) GetEpoch() *EpochV2 { if x != nil { return x.Epoch } return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) GetSlot() *SlotV2 { +func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) GetSlot() *SlotV2 { if x != nil { return x.Slot } return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) GetWallclockEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) GetWallclockEpoch() *EpochV2 { if x != nil { return x.WallclockEpoch } return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) GetWallclockSlot() *SlotV2 { +func (x *ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData) GetWallclockSlot() *SlotV2 { if x != nil { return x.WallclockSlot } return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) GetPropagation() *PropagationV2 { - if x != nil { - return x.Propagation - } - return nil +// AdditionalLibP2PTraceRPCMetaSubscriptionData: Holds additional data for a RPC meta subscription event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) GetMetadata() *libp2p.TraceEventMetadata { - if x != nil { - return x.Metadata +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[115] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) GetTopic() *wrapperspb.StringValue { - if x != nil { - return x.Topic - } - return nil +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) GetMessageSize() *wrapperspb.UInt32Value { - if x != nil { - return x.MessageSize +func (*ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) ProtoMessage() {} + +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[115] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) GetMessageId() *wrapperspb.StringValue { +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 87} +} + +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { - return x.MessageId + return x.Metadata } return nil } -// AdditionalEthV1ValidatorsData contains additional data about the eth v1 validators. -type ClientMeta_AdditionalEthV1ValidatorsData struct { +// AdditionalLibP2PTraceRPCMetaMessageData: Holds additional data for a RPC meta message event in LibP2P tracing. +type ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` } -func (x *ClientMeta_AdditionalEthV1ValidatorsData) Reset() { - *x = ClientMeta_AdditionalEthV1ValidatorsData{} +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[114] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalEthV1ValidatorsData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalEthV1ValidatorsData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) ProtoMessage() {} -func (x *ClientMeta_AdditionalEthV1ValidatorsData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[114] +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11226,57 +11395,61 @@ func (x *ClientMeta_AdditionalEthV1ValidatorsData) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalEthV1ValidatorsData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalEthV1ValidatorsData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 86} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 88} } -func (x *ClientMeta_AdditionalEthV1ValidatorsData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { - return x.Epoch + return x.Metadata } return nil } -// AdditionalMevRelayBidTraceBuilderBlockSubmissionData contains additional data about the mev relay bid trace event. -type ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData struct { +// AdditionalLibP2PTraceGossipSubBeaconBlockData contains additional data about the gossip sub beacon block event. +type ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Relay is the relay that the bid trace is from. - Relay *mevrelay.Relay `protobuf:"bytes,1,opt,name=relay,proto3" json:"relay,omitempty"` - // Slot is the slot the bid trace is for. + // Epoch contains the epoch information for the beacon block. + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + // Slot contains the slot information for the beacon block. Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` - // WallclockSlot contains the slot information of when the bid trace was requested. - WallclockSlot *SlotV2 `protobuf:"bytes,3,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` - // Epoch is the epoch the bid trace is for. - Epoch *EpochV2 `protobuf:"bytes,4,opt,name=epoch,proto3" json:"epoch,omitempty"` - // WallclockEpoch contains the epoch information of when the bid trace was requested. - WallclockEpoch *EpochV2 `protobuf:"bytes,5,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` - // RequestedAtSlotTime is the time in the slot when the bid trace was requested. - RequestedAtSlotTime *wrapperspb.UInt64Value `protobuf:"bytes,6,opt,name=requested_at_slot_time,proto3" json:"requested_at_slot_time,omitempty"` - // ResponseAtSlotTime is the time in the slot when the bid trace was responded to. - ResponseAtSlotTime *wrapperspb.UInt64Value `protobuf:"bytes,7,opt,name=response_at_slot_time,proto3" json:"response_at_slot_time,omitempty"` + // WallclockEpoch contains the epoch information for the beacon block in the wall clock time. + WallclockEpoch *EpochV2 `protobuf:"bytes,3,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` + // WallclockSlot contains the slot information for the beacon block in the wall clock time. + WallclockSlot *SlotV2 `protobuf:"bytes,4,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` + // Propagation contains information about the propagation of the beacon block. + Propagation *PropagationV2 `protobuf:"bytes,5,opt,name=propagation,proto3" json:"propagation,omitempty"` + // Metadata contains additional trace event metadata. + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` + // Topic is the gossip sub topic the beacon block was received on. + Topic *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=topic,proto3" json:"topic,omitempty"` + // MessageSize is the size of the beacon block message in bytes. + MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,8,opt,name=message_size,proto3" json:"message_size,omitempty"` + // MessageID is a unique identifier for the beacon block message. + MessageId *wrapperspb.StringValue `protobuf:"bytes,9,opt,name=message_id,proto3" json:"message_id,omitempty"` } -func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) Reset() { - *x = ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData{} +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[115] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) ProtoMessage() {} -func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[115] +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11287,99 +11460,100 @@ func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) ProtoR return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 87} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 89} } -func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) GetRelay() *mevrelay.Relay { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) GetEpoch() *EpochV2 { if x != nil { - return x.Relay + return x.Epoch } return nil } -func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) GetSlot() *SlotV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) GetSlot() *SlotV2 { if x != nil { return x.Slot } return nil } -func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) GetWallclockSlot() *SlotV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) GetWallclockEpoch() *EpochV2 { + if x != nil { + return x.WallclockEpoch + } + return nil +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) GetWallclockSlot() *SlotV2 { if x != nil { return x.WallclockSlot } return nil } -func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) GetPropagation() *PropagationV2 { if x != nil { - return x.Epoch + return x.Propagation } return nil } -func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) GetWallclockEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { - return x.WallclockEpoch + return x.Metadata } return nil } -func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) GetRequestedAtSlotTime() *wrapperspb.UInt64Value { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) GetTopic() *wrapperspb.StringValue { if x != nil { - return x.RequestedAtSlotTime + return x.Topic } return nil } -func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) GetResponseAtSlotTime() *wrapperspb.UInt64Value { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) GetMessageSize() *wrapperspb.UInt32Value { if x != nil { - return x.ResponseAtSlotTime + return x.MessageSize } return nil } -// AdditionalMevRelayPayloadDeliveredData contains additional data about the proposer payload delivered event. -type ClientMeta_AdditionalMevRelayPayloadDeliveredData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData) GetMessageId() *wrapperspb.StringValue { + if x != nil { + return x.MessageId + } + return nil +} - // Relay is the relay that delivered the payload. - Relay *mevrelay.Relay `protobuf:"bytes,1,opt,name=relay,proto3" json:"relay,omitempty"` - // Slot is the slot the payload was delivered for. - Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` - // WallclockSlot contains the slot information of when the payload was delivered. - WallclockSlot *SlotV2 `protobuf:"bytes,3,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` - // Epoch is the epoch the payload was delivered for. - Epoch *EpochV2 `protobuf:"bytes,4,opt,name=epoch,proto3" json:"epoch,omitempty"` - // WallclockEpoch contains the epoch information of when the payload was delivered. - WallclockEpoch *EpochV2 `protobuf:"bytes,5,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` - // RequestedAtSlotTime is the time in the slot when the payload was requested. - RequestedAtSlotTime *wrapperspb.UInt64Value `protobuf:"bytes,6,opt,name=requested_at_slot_time,proto3" json:"requested_at_slot_time,omitempty"` - // ResponseAtSlotTime is the time in the slot when the payload was delivered. - ResponseAtSlotTime *wrapperspb.UInt64Value `protobuf:"bytes,7,opt,name=response_at_slot_time,proto3" json:"response_at_slot_time,omitempty"` +type ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Epoch contains the epoch information for the source. + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` } -func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) Reset() { - *x = ClientMeta_AdditionalMevRelayPayloadDeliveredData{} +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[116] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalMevRelayPayloadDeliveredData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) ProtoMessage() {} -func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[116] +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11390,111 +11564,117 @@ func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) ProtoReflect() proto return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalMevRelayPayloadDeliveredData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalMevRelayPayloadDeliveredData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 88} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 90} } -func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) GetRelay() *mevrelay.Relay { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData) GetEpoch() *EpochV2 { if x != nil { - return x.Relay + return x.Epoch } return nil } -func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) GetSlot() *SlotV2 { - if x != nil { - return x.Slot - } - return nil +type ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Epoch contains the epoch information for the target. + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` } -func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) GetWallclockSlot() *SlotV2 { - if x != nil { - return x.WallclockSlot +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[119] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) GetEpoch() *EpochV2 { - if x != nil { - return x.Epoch - } - return nil +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) GetWallclockEpoch() *EpochV2 { - if x != nil { - return x.WallclockEpoch +func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) ProtoMessage() {} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[119] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) GetRequestedAtSlotTime() *wrapperspb.UInt64Value { - if x != nil { - return x.RequestedAtSlotTime - } - return nil +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 91} } -func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) GetResponseAtSlotTime() *wrapperspb.UInt64Value { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData) GetEpoch() *EpochV2 { if x != nil { - return x.ResponseAtSlotTime + return x.Epoch } return nil } -// AdditionalEthV3ValidatorBlockData contains additional data about the eth v3 validator block event. -type ClientMeta_AdditionalEthV3ValidatorBlockData struct { +type ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Epoch contains the epoch information for the block. - Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Slot contains the slot information for the block. - Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` - // Version contains information about the version of the block. - Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` - // TransactionsCount contains the number of transactions in the block - TransactionsCount *wrapperspb.UInt64Value `protobuf:"bytes,4,opt,name=transactions_count,proto3" json:"transactions_count,omitempty"` - // TransactionsTotalBytes contains the total bytes size of transactions - TransactionsTotalBytes *wrapperspb.UInt64Value `protobuf:"bytes,5,opt,name=transactions_total_bytes,proto3" json:"transactions_total_bytes,omitempty"` - // CompressedTotalBytesCompressed contains the total bytes size of - // transactions with snappy compression - TransactionsTotalBytesCompressed *wrapperspb.UInt64Value `protobuf:"bytes,6,opt,name=transactions_total_bytes_compressed,proto3" json:"transactions_total_bytes_compressed,omitempty"` - // TotalBytes contains the total bytes size of block - TotalBytes *wrapperspb.UInt64Value `protobuf:"bytes,7,opt,name=total_bytes,proto3" json:"total_bytes,omitempty"` - // TotalBytesCompressed contains the total bytes size of block with snappy - // compression - TotalBytesCompressed *wrapperspb.UInt64Value `protobuf:"bytes,8,opt,name=total_bytes_compressed,proto3" json:"total_bytes_compressed,omitempty"` - // ExecutionValue contains the total execution payload value, in Wei. - ExecutionValue string `protobuf:"bytes,9,opt,name=execution_value,proto3" json:"execution_value,omitempty"` - // ConsensusValue represents the rewards paid to the proposer for this block, in Wei. - ConsensusValue string `protobuf:"bytes,10,opt,name=consensus_value,proto3" json:"consensus_value,omitempty"` - // RequestDurationMs is the duration of the produce block request (in milliseconds). - RequestDurationMs *wrapperspb.UInt64Value `protobuf:"bytes,11,opt,name=request_duration_ms,proto3" json:"request_duration_ms,omitempty"` - // RequestedAt is the time the call was made to produce the block. - RequestedAt *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=requested_at,proto3" json:"requested_at,omitempty"` + // Source contains information for the best currently justified checkpoint. + Source *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` + // Target contains information of the block at the start of the current + // epoch. + Target *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"` + // Slot contains the slot information for the attestation. + Slot *SlotV2 `protobuf:"bytes,3,opt,name=slot,proto3" json:"slot,omitempty"` + // Epoch contains the epoch information for the attestation. + Epoch *EpochV2 `protobuf:"bytes,4,opt,name=epoch,proto3" json:"epoch,omitempty"` + // Propagation contains information about the propagation of the + // attestation. + Propagation *PropagationV2 `protobuf:"bytes,5,opt,name=propagation,proto3" json:"propagation,omitempty"` + // AttestingValidator contains data about the validator that created the + // attestation. Note: only available for unaggregated attestations. + AttestingValidator *AttestingValidatorV2 `protobuf:"bytes,6,opt,name=attesting_validator,proto3" json:"attesting_validator,omitempty"` + // WallclockEpoch contains the epoch information for the attestation on the wall clock when the attestation was received. + WallclockEpoch *EpochV2 `protobuf:"bytes,7,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` + // WallclockSlot contains the slot information for the attestation on the wall clock when the attestation was received. + WallclockSlot *SlotV2 `protobuf:"bytes,8,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` + // Metadata contains additional trace event metadata. + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,9,opt,name=metadata,proto3" json:"metadata,omitempty"` + // Topic is the gossip sub topic the beacon block was received on. + Topic *wrapperspb.StringValue `protobuf:"bytes,10,opt,name=topic,proto3" json:"topic,omitempty"` + // MessageSize is the size of the beacon block message in bytes. + MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,11,opt,name=message_size,proto3" json:"message_size,omitempty"` + // MessageID is a unique identifier for the beacon block message. + MessageId *wrapperspb.StringValue `protobuf:"bytes,12,opt,name=message_id,proto3" json:"message_id,omitempty"` } -func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) Reset() { - *x = ClientMeta_AdditionalEthV3ValidatorBlockData{} +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[117] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalEthV3ValidatorBlockData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) ProtoMessage() {} -func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[117] +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11505,132 +11685,139 @@ func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalEthV3ValidatorBlockData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalEthV3ValidatorBlockData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 89} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 92} } -func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetSource() *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData { if x != nil { - return x.Epoch + return x.Source } return nil } -func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetSlot() *SlotV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetTarget() *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData { if x != nil { - return x.Slot + return x.Target } return nil } -func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetVersion() string { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetSlot() *SlotV2 { if x != nil { - return x.Version + return x.Slot } - return "" + return nil } -func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetTransactionsCount() *wrapperspb.UInt64Value { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetEpoch() *EpochV2 { if x != nil { - return x.TransactionsCount + return x.Epoch } return nil } -func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetTransactionsTotalBytes() *wrapperspb.UInt64Value { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetPropagation() *PropagationV2 { if x != nil { - return x.TransactionsTotalBytes + return x.Propagation } return nil } -func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetTransactionsTotalBytesCompressed() *wrapperspb.UInt64Value { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetAttestingValidator() *AttestingValidatorV2 { if x != nil { - return x.TransactionsTotalBytesCompressed + return x.AttestingValidator } return nil } -func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetTotalBytes() *wrapperspb.UInt64Value { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetWallclockEpoch() *EpochV2 { if x != nil { - return x.TotalBytes + return x.WallclockEpoch } return nil } -func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetTotalBytesCompressed() *wrapperspb.UInt64Value { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetWallclockSlot() *SlotV2 { if x != nil { - return x.TotalBytesCompressed + return x.WallclockSlot } return nil } -func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetExecutionValue() string { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { - return x.ExecutionValue + return x.Metadata } - return "" + return nil } -func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetConsensusValue() string { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetTopic() *wrapperspb.StringValue { if x != nil { - return x.ConsensusValue + return x.Topic } - return "" + return nil } -func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetRequestDurationMs() *wrapperspb.UInt64Value { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetMessageSize() *wrapperspb.UInt32Value { if x != nil { - return x.RequestDurationMs + return x.MessageSize } return nil } -func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetRequestedAt() *timestamppb.Timestamp { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData) GetMessageId() *wrapperspb.StringValue { if x != nil { - return x.RequestedAt + return x.MessageId } return nil } -// AdditionalMevRelayValidatorRegistrationData contains additional data about the mev relay validator registration event. -type ClientMeta_AdditionalMevRelayValidatorRegistrationData struct { +type ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Relay is the relay that received the validator registration. - Relay *mevrelay.Relay `protobuf:"bytes,1,opt,name=relay,proto3" json:"relay,omitempty"` - // Slot is the slot the validator registration was received for. This is derived from the validator registration `timestamp` field. + // Epoch contains the epoch information for the aggregate and proof. + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + // Slot contains the slot information for the aggregate and proof. Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` - // WallclockSlot contains the slot information of when the validator registration was received from the relay. - WallclockSlot *SlotV2 `protobuf:"bytes,3,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` - // Epoch is the epoch the validator registration was received for. This is derived from the validator registration `timestamp` field. - Epoch *EpochV2 `protobuf:"bytes,4,opt,name=epoch,proto3" json:"epoch,omitempty"` - // WallclockEpoch contains the epoch information of when the validator registration was requested from the relay. - WallclockEpoch *EpochV2 `protobuf:"bytes,5,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` - // ValidatorIndex is the index of the validator that was registered. - ValidatorIndex *wrapperspb.UInt64Value `protobuf:"bytes,6,opt,name=validator_index,proto3" json:"validator_index,omitempty"` -} - -func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) Reset() { - *x = ClientMeta_AdditionalMevRelayValidatorRegistrationData{} + // WallclockEpoch contains the epoch information for the aggregate and proof in the wall clock time. + WallclockEpoch *EpochV2 `protobuf:"bytes,3,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` + // WallclockSlot contains the slot information for the aggregate and proof in the wall clock time. + WallclockSlot *SlotV2 `protobuf:"bytes,4,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` + // Propagation contains information about the propagation of the aggregate and proof. + Propagation *PropagationV2 `protobuf:"bytes,5,opt,name=propagation,proto3" json:"propagation,omitempty"` + // AggregatorIndex contains the index of the validator who created this aggregate. + AggregatorIndex *wrapperspb.UInt64Value `protobuf:"bytes,6,opt,name=aggregator_index,proto3" json:"aggregator_index,omitempty"` + // Metadata contains additional trace event metadata. + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,7,opt,name=metadata,proto3" json:"metadata,omitempty"` + // Topic is the gossip sub topic the aggregate and proof was received on. + Topic *wrapperspb.StringValue `protobuf:"bytes,8,opt,name=topic,proto3" json:"topic,omitempty"` + // MessageSize is the size of the aggregate and proof message in bytes. + MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,9,opt,name=message_size,proto3" json:"message_size,omitempty"` + // MessageID is a unique identifier for the aggregate and proof message. + MessageId *wrapperspb.StringValue `protobuf:"bytes,10,opt,name=message_id,proto3" json:"message_id,omitempty"` +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[118] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalMevRelayValidatorRegistrationData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) ProtoMessage() {} -func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[118] +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11641,84 +11828,123 @@ func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalMevRelayValidatorRegistrationData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalMevRelayValidatorRegistrationData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 90} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 93} } -func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) GetRelay() *mevrelay.Relay { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetEpoch() *EpochV2 { if x != nil { - return x.Relay + return x.Epoch } return nil } -func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) GetSlot() *SlotV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetSlot() *SlotV2 { if x != nil { return x.Slot } return nil } -func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) GetWallclockSlot() *SlotV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetWallclockEpoch() *EpochV2 { + if x != nil { + return x.WallclockEpoch + } + return nil +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetWallclockSlot() *SlotV2 { if x != nil { return x.WallclockSlot } return nil } -func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetPropagation() *PropagationV2 { if x != nil { - return x.Epoch + return x.Propagation } return nil } -func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) GetWallclockEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetAggregatorIndex() *wrapperspb.UInt64Value { if x != nil { - return x.WallclockEpoch + return x.AggregatorIndex } return nil } -func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) GetValidatorIndex() *wrapperspb.UInt64Value { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetMetadata() *libp2p.TraceEventMetadata { if x != nil { - return x.ValidatorIndex + return x.Metadata } return nil } -// AdditionalNodeRecordConsensusData contains additional data about the node record consensus event. -type ClientMeta_AdditionalNodeRecordConsensusData struct { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetTopic() *wrapperspb.StringValue { + if x != nil { + return x.Topic + } + return nil +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetMessageSize() *wrapperspb.UInt32Value { + if x != nil { + return x.MessageSize + } + return nil +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData) GetMessageId() *wrapperspb.StringValue { + if x != nil { + return x.MessageId + } + return nil +} + +type ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // FinalizedEpoch is the epoch the node record consensus was received for. - FinalizedEpoch *EpochV2 `protobuf:"bytes,2,opt,name=finalized_epoch,json=finalizedEpoch,proto3" json:"finalized_epoch,omitempty"` - // HeadSlot is the slot the node record consensus was received for. - HeadSlot *SlotV2 `protobuf:"bytes,3,opt,name=head_slot,json=headSlot,proto3" json:"head_slot,omitempty"` - // HeadEpoch is the epoch the node record consensus was received for. - HeadEpoch *EpochV2 `protobuf:"bytes,4,opt,name=head_epoch,json=headEpoch,proto3" json:"head_epoch,omitempty"` + // Epoch contains the epoch information for the blob sidecar. + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + // Slot contains the slot information for the blob sidecar. + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` + // WallclockEpoch contains the epoch information for the blob sidecar in the wall clock time. + WallclockEpoch *EpochV2 `protobuf:"bytes,3,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` + // WallclockSlot contains the slot information for the blob sidecar in the wall clock time. + WallclockSlot *SlotV2 `protobuf:"bytes,4,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` + // Propagation contains information about the propagation of the blob sidecar. + Propagation *PropagationV2 `protobuf:"bytes,5,opt,name=propagation,proto3" json:"propagation,omitempty"` + // Metadata contains additional trace event metadata. + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` + // Topic is the gossip sub topic the blob sidecar was received on. + Topic *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=topic,proto3" json:"topic,omitempty"` + // MessageSize is the size of the blob sidecar message in bytes. + MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,8,opt,name=message_size,proto3" json:"message_size,omitempty"` + // MessageID is a unique identifier for the blob sidecar message. + MessageId *wrapperspb.StringValue `protobuf:"bytes,9,opt,name=message_id,proto3" json:"message_id,omitempty"` } -func (x *ClientMeta_AdditionalNodeRecordConsensusData) Reset() { - *x = ClientMeta_AdditionalNodeRecordConsensusData{} +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[119] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalNodeRecordConsensusData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalNodeRecordConsensusData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) ProtoMessage() {} -func (x *ClientMeta_AdditionalNodeRecordConsensusData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[119] +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11729,121 +11955,116 @@ func (x *ClientMeta_AdditionalNodeRecordConsensusData) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalNodeRecordConsensusData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalNodeRecordConsensusData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 91} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 94} } -func (x *ClientMeta_AdditionalNodeRecordConsensusData) GetFinalizedEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) GetEpoch() *EpochV2 { if x != nil { - return x.FinalizedEpoch + return x.Epoch } return nil } -func (x *ClientMeta_AdditionalNodeRecordConsensusData) GetHeadSlot() *SlotV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) GetSlot() *SlotV2 { if x != nil { - return x.HeadSlot + return x.Slot } return nil } -func (x *ClientMeta_AdditionalNodeRecordConsensusData) GetHeadEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) GetWallclockEpoch() *EpochV2 { if x != nil { - return x.HeadEpoch + return x.WallclockEpoch } return nil } -// AdditionalConsensusEngineAPINewPayloadData contains additional metadata about the -// engine_newPayload call event. -type ClientMeta_AdditionalConsensusEngineAPINewPayloadData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Epoch contains the epoch information for the slot. - Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Slot contains the slot information. - Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` -} - -func (x *ClientMeta_AdditionalConsensusEngineAPINewPayloadData) Reset() { - *x = ClientMeta_AdditionalConsensusEngineAPINewPayloadData{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[120] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) GetWallclockSlot() *SlotV2 { + if x != nil { + return x.WallclockSlot } + return nil } -func (x *ClientMeta_AdditionalConsensusEngineAPINewPayloadData) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) GetPropagation() *PropagationV2 { + if x != nil { + return x.Propagation + } + return nil } -func (*ClientMeta_AdditionalConsensusEngineAPINewPayloadData) ProtoMessage() {} - -func (x *ClientMeta_AdditionalConsensusEngineAPINewPayloadData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[120] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) GetMetadata() *libp2p.TraceEventMetadata { + if x != nil { + return x.Metadata } - return mi.MessageOf(x) + return nil } -// Deprecated: Use ClientMeta_AdditionalConsensusEngineAPINewPayloadData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalConsensusEngineAPINewPayloadData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 92} +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) GetTopic() *wrapperspb.StringValue { + if x != nil { + return x.Topic + } + return nil } -func (x *ClientMeta_AdditionalConsensusEngineAPINewPayloadData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) GetMessageSize() *wrapperspb.UInt32Value { if x != nil { - return x.Epoch + return x.MessageSize } return nil } -func (x *ClientMeta_AdditionalConsensusEngineAPINewPayloadData) GetSlot() *SlotV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData) GetMessageId() *wrapperspb.StringValue { if x != nil { - return x.Slot + return x.MessageId } return nil } -// AdditionalConsensusEngineAPIGetBlobsData contains additional metadata about the -// engine_getBlobs call event. -type ClientMeta_AdditionalConsensusEngineAPIGetBlobsData struct { +type ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Epoch contains the epoch information for the slot. + // Epoch contains the epoch information for the data column sidecar. Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Slot contains the slot information. + // Slot contains the slot information for the data column sidecar. Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` + // WallclockEpoch contains the epoch information for the data column sidecar in the wall clock time. + WallclockEpoch *EpochV2 `protobuf:"bytes,3,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` + // WallclockSlot contains the slot information for the data column sidecar in the wall clock time. + WallclockSlot *SlotV2 `protobuf:"bytes,4,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` + // Propagation contains information about the propagation of the data column sidecar. + Propagation *PropagationV2 `protobuf:"bytes,5,opt,name=propagation,proto3" json:"propagation,omitempty"` + // Metadata contains additional trace event metadata. + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` + // Topic is the gossip sub topic the data column sidecar was received on. + Topic *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=topic,proto3" json:"topic,omitempty"` + // MessageSize is the size of the data column sidecar message in bytes. + MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,8,opt,name=message_size,proto3" json:"message_size,omitempty"` + // MessageID is a unique identifier for the data column sidecar message. + MessageId *wrapperspb.StringValue `protobuf:"bytes,9,opt,name=message_id,proto3" json:"message_id,omitempty"` } -func (x *ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) Reset() { - *x = ClientMeta_AdditionalConsensusEngineAPIGetBlobsData{} +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[121] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) String() string { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) ProtoMessage() {} +func (*ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) ProtoMessage() {} -func (x *ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[121] +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11854,112 +12075,100 @@ func (x *ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) ProtoReflect() pro return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_AdditionalConsensusEngineAPIGetBlobsData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 93} +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 95} } -func (x *ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) GetEpoch() *EpochV2 { if x != nil { return x.Epoch } return nil } -func (x *ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) GetSlot() *SlotV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) GetSlot() *SlotV2 { if x != nil { return x.Slot } return nil } -// AdditionalEthV1BeaconBlobData contains additional metadata about the -// beacon blob event derived from block's blob_kzg_commitments. -type ClientMeta_AdditionalEthV1BeaconBlobData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Epoch contains the epoch information for the blob. - Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Slot contains the slot information for the blob. - Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) GetWallclockEpoch() *EpochV2 { + if x != nil { + return x.WallclockEpoch + } + return nil } -func (x *ClientMeta_AdditionalEthV1BeaconBlobData) Reset() { - *x = ClientMeta_AdditionalEthV1BeaconBlobData{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[122] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) GetWallclockSlot() *SlotV2 { + if x != nil { + return x.WallclockSlot } + return nil } -func (x *ClientMeta_AdditionalEthV1BeaconBlobData) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) GetPropagation() *PropagationV2 { + if x != nil { + return x.Propagation + } + return nil } -func (*ClientMeta_AdditionalEthV1BeaconBlobData) ProtoMessage() {} - -func (x *ClientMeta_AdditionalEthV1BeaconBlobData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[122] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) GetMetadata() *libp2p.TraceEventMetadata { + if x != nil { + return x.Metadata } - return mi.MessageOf(x) + return nil } -// Deprecated: Use ClientMeta_AdditionalEthV1BeaconBlobData.ProtoReflect.Descriptor instead. -func (*ClientMeta_AdditionalEthV1BeaconBlobData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 94} +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) GetTopic() *wrapperspb.StringValue { + if x != nil { + return x.Topic + } + return nil } -func (x *ClientMeta_AdditionalEthV1BeaconBlobData) GetEpoch() *EpochV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) GetMessageSize() *wrapperspb.UInt32Value { if x != nil { - return x.Epoch + return x.MessageSize } return nil } -func (x *ClientMeta_AdditionalEthV1BeaconBlobData) GetSlot() *SlotV2 { +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData) GetMessageId() *wrapperspb.StringValue { if x != nil { - return x.Slot + return x.MessageId } return nil } -type ClientMeta_Ethereum_Network struct { +// AdditionalEthV1ValidatorsData contains additional data about the eth v1 validators. +type ClientMeta_AdditionalEthV1ValidatorsData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name is the name of the network. - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // ID is the network ID of the network. - Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` } -func (x *ClientMeta_Ethereum_Network) Reset() { - *x = ClientMeta_Ethereum_Network{} +func (x *ClientMeta_AdditionalEthV1ValidatorsData) Reset() { + *x = ClientMeta_AdditionalEthV1ValidatorsData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[123] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_Ethereum_Network) String() string { +func (x *ClientMeta_AdditionalEthV1ValidatorsData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_Ethereum_Network) ProtoMessage() {} +func (*ClientMeta_AdditionalEthV1ValidatorsData) ProtoMessage() {} -func (x *ClientMeta_Ethereum_Network) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[123] +func (x *ClientMeta_AdditionalEthV1ValidatorsData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11970,61 +12179,57 @@ func (x *ClientMeta_Ethereum_Network) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_Ethereum_Network.ProtoReflect.Descriptor instead. -func (*ClientMeta_Ethereum_Network) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 0, 0} -} - -func (x *ClientMeta_Ethereum_Network) GetName() string { - if x != nil { - return x.Name - } - return "" +// Deprecated: Use ClientMeta_AdditionalEthV1ValidatorsData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalEthV1ValidatorsData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 96} } -func (x *ClientMeta_Ethereum_Network) GetId() uint64 { +func (x *ClientMeta_AdditionalEthV1ValidatorsData) GetEpoch() *EpochV2 { if x != nil { - return x.Id + return x.Epoch } - return 0 + return nil } -type ClientMeta_Ethereum_Execution struct { +// AdditionalMevRelayBidTraceBuilderBlockSubmissionData contains additional data about the mev relay bid trace event. +type ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // ForkID is the fork ID of the execution client. - ForkId *ForkID `protobuf:"bytes,1,opt,name=fork_id,proto3" json:"fork_id,omitempty"` - // Implementation is the name of the execution client (e.g., "Geth", "Besu", "Nethermind"). - Implementation string `protobuf:"bytes,2,opt,name=implementation,proto3" json:"implementation,omitempty"` - // Version is the full version string of the execution client. - Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` - // VersionMajor is the major version number. - VersionMajor string `protobuf:"bytes,4,opt,name=version_major,proto3" json:"version_major,omitempty"` - // VersionMinor is the minor version number. - VersionMinor string `protobuf:"bytes,5,opt,name=version_minor,proto3" json:"version_minor,omitempty"` - // VersionPatch is the patch version number. - VersionPatch string `protobuf:"bytes,6,opt,name=version_patch,proto3" json:"version_patch,omitempty"` + // Relay is the relay that the bid trace is from. + Relay *mevrelay.Relay `protobuf:"bytes,1,opt,name=relay,proto3" json:"relay,omitempty"` + // Slot is the slot the bid trace is for. + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` + // WallclockSlot contains the slot information of when the bid trace was requested. + WallclockSlot *SlotV2 `protobuf:"bytes,3,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` + // Epoch is the epoch the bid trace is for. + Epoch *EpochV2 `protobuf:"bytes,4,opt,name=epoch,proto3" json:"epoch,omitempty"` + // WallclockEpoch contains the epoch information of when the bid trace was requested. + WallclockEpoch *EpochV2 `protobuf:"bytes,5,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` + // RequestedAtSlotTime is the time in the slot when the bid trace was requested. + RequestedAtSlotTime *wrapperspb.UInt64Value `protobuf:"bytes,6,opt,name=requested_at_slot_time,proto3" json:"requested_at_slot_time,omitempty"` + // ResponseAtSlotTime is the time in the slot when the bid trace was responded to. + ResponseAtSlotTime *wrapperspb.UInt64Value `protobuf:"bytes,7,opt,name=response_at_slot_time,proto3" json:"response_at_slot_time,omitempty"` } -func (x *ClientMeta_Ethereum_Execution) Reset() { - *x = ClientMeta_Ethereum_Execution{} +func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) Reset() { + *x = ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[124] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_Ethereum_Execution) String() string { +func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_Ethereum_Execution) ProtoMessage() {} +func (*ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) ProtoMessage() {} -func (x *ClientMeta_Ethereum_Execution) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[124] +func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12035,81 +12240,99 @@ func (x *ClientMeta_Ethereum_Execution) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_Ethereum_Execution.ProtoReflect.Descriptor instead. -func (*ClientMeta_Ethereum_Execution) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 0, 1} +// Deprecated: Use ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 97} } -func (x *ClientMeta_Ethereum_Execution) GetForkId() *ForkID { +func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) GetRelay() *mevrelay.Relay { if x != nil { - return x.ForkId + return x.Relay } return nil } -func (x *ClientMeta_Ethereum_Execution) GetImplementation() string { +func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) GetSlot() *SlotV2 { if x != nil { - return x.Implementation + return x.Slot } - return "" + return nil } -func (x *ClientMeta_Ethereum_Execution) GetVersion() string { +func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) GetWallclockSlot() *SlotV2 { if x != nil { - return x.Version + return x.WallclockSlot } - return "" + return nil } -func (x *ClientMeta_Ethereum_Execution) GetVersionMajor() string { +func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) GetEpoch() *EpochV2 { if x != nil { - return x.VersionMajor + return x.Epoch } - return "" + return nil } -func (x *ClientMeta_Ethereum_Execution) GetVersionMinor() string { +func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) GetWallclockEpoch() *EpochV2 { if x != nil { - return x.VersionMinor + return x.WallclockEpoch } - return "" + return nil } -func (x *ClientMeta_Ethereum_Execution) GetVersionPatch() string { +func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) GetRequestedAtSlotTime() *wrapperspb.UInt64Value { if x != nil { - return x.VersionPatch + return x.RequestedAtSlotTime } - return "" + return nil } -type ClientMeta_Ethereum_Consensus struct { +func (x *ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData) GetResponseAtSlotTime() *wrapperspb.UInt64Value { + if x != nil { + return x.ResponseAtSlotTime + } + return nil +} + +// AdditionalMevRelayPayloadDeliveredData contains additional data about the proposer payload delivered event. +type ClientMeta_AdditionalMevRelayPayloadDeliveredData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Implementation is the name of the consensus client. - Implementation string `protobuf:"bytes,1,opt,name=implementation,proto3" json:"implementation,omitempty"` - // Version is the version of the consensus client. - Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + // Relay is the relay that delivered the payload. + Relay *mevrelay.Relay `protobuf:"bytes,1,opt,name=relay,proto3" json:"relay,omitempty"` + // Slot is the slot the payload was delivered for. + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` + // WallclockSlot contains the slot information of when the payload was delivered. + WallclockSlot *SlotV2 `protobuf:"bytes,3,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` + // Epoch is the epoch the payload was delivered for. + Epoch *EpochV2 `protobuf:"bytes,4,opt,name=epoch,proto3" json:"epoch,omitempty"` + // WallclockEpoch contains the epoch information of when the payload was delivered. + WallclockEpoch *EpochV2 `protobuf:"bytes,5,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` + // RequestedAtSlotTime is the time in the slot when the payload was requested. + RequestedAtSlotTime *wrapperspb.UInt64Value `protobuf:"bytes,6,opt,name=requested_at_slot_time,proto3" json:"requested_at_slot_time,omitempty"` + // ResponseAtSlotTime is the time in the slot when the payload was delivered. + ResponseAtSlotTime *wrapperspb.UInt64Value `protobuf:"bytes,7,opt,name=response_at_slot_time,proto3" json:"response_at_slot_time,omitempty"` } -func (x *ClientMeta_Ethereum_Consensus) Reset() { - *x = ClientMeta_Ethereum_Consensus{} +func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) Reset() { + *x = ClientMeta_AdditionalMevRelayPayloadDeliveredData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[125] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClientMeta_Ethereum_Consensus) String() string { +func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientMeta_Ethereum_Consensus) ProtoMessage() {} +func (*ClientMeta_AdditionalMevRelayPayloadDeliveredData) ProtoMessage() {} -func (x *ClientMeta_Ethereum_Consensus) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[125] +func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12120,104 +12343,96 @@ func (x *ClientMeta_Ethereum_Consensus) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ClientMeta_Ethereum_Consensus.ProtoReflect.Descriptor instead. -func (*ClientMeta_Ethereum_Consensus) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 0, 2} +// Deprecated: Use ClientMeta_AdditionalMevRelayPayloadDeliveredData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalMevRelayPayloadDeliveredData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 98} } -func (x *ClientMeta_Ethereum_Consensus) GetImplementation() string { +func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) GetRelay() *mevrelay.Relay { if x != nil { - return x.Implementation + return x.Relay } - return "" + return nil } -func (x *ClientMeta_Ethereum_Consensus) GetVersion() string { +func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) GetSlot() *SlotV2 { if x != nil { - return x.Version + return x.Slot } - return "" + return nil } -type ServerMeta_Event struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // / DateTime is the date and time of the event as seen by the server. - ReceivedDateTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=received_date_time,proto3" json:"received_date_time,omitempty"` +func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) GetWallclockSlot() *SlotV2 { + if x != nil { + return x.WallclockSlot + } + return nil } -func (x *ServerMeta_Event) Reset() { - *x = ServerMeta_Event{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[126] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) GetEpoch() *EpochV2 { + if x != nil { + return x.Epoch } + return nil } -func (x *ServerMeta_Event) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ServerMeta_Event) ProtoMessage() {} - -func (x *ServerMeta_Event) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[126] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) GetWallclockEpoch() *EpochV2 { + if x != nil { + return x.WallclockEpoch } - return mi.MessageOf(x) + return nil } -// Deprecated: Use ServerMeta_Event.ProtoReflect.Descriptor instead. -func (*ServerMeta_Event) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 0} +func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) GetRequestedAtSlotTime() *wrapperspb.UInt64Value { + if x != nil { + return x.RequestedAtSlotTime + } + return nil } -func (x *ServerMeta_Event) GetReceivedDateTime() *timestamppb.Timestamp { +func (x *ClientMeta_AdditionalMevRelayPayloadDeliveredData) GetResponseAtSlotTime() *wrapperspb.UInt64Value { if x != nil { - return x.ReceivedDateTime + return x.ResponseAtSlotTime } return nil } -type ServerMeta_Geo struct { +// AdditionalEthV3ValidatorBlockData contains additional data about the eth v3 validator block event. +type ClientMeta_AdditionalEthV3ValidatorBlockData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // City is the city of the client as far as the server is concerned. - City string `protobuf:"bytes,1,opt,name=City,json=city,proto3" json:"City,omitempty"` - // Country is the country of the client as far as the server is concerned. - Country string `protobuf:"bytes,2,opt,name=Country,json=country,proto3" json:"Country,omitempty"` - // CountryCode is the country code of the client as far as the server is - // concerned. - CountryCode string `protobuf:"bytes,3,opt,name=CountryCode,json=country_code,proto3" json:"CountryCode,omitempty"` - // ContinentCode is the continent code of the client as far as the server - // is concerned. - ContinentCode string `protobuf:"bytes,4,opt,name=ContinentCode,json=continent_code,proto3" json:"ContinentCode,omitempty"` - // Latitude is the latitude of the client as far as the server is - // concerned. - Latitude float64 `protobuf:"fixed64,5,opt,name=Latitude,json=latitude,proto3" json:"Latitude,omitempty"` - // Longitude is the longitude of the client as far as the server is - // concerned. - Longitude float64 `protobuf:"fixed64,6,opt,name=Longitude,json=longitude,proto3" json:"Longitude,omitempty"` - // AutonomousSystemNumber is the autonomous system number of the client as - // far as the server is concerned. - AutonomousSystemNumber uint32 `protobuf:"varint,7,opt,name=AutonomousSystemNumber,json=autonomous_system_number,proto3" json:"AutonomousSystemNumber,omitempty"` - // AutonomousSystemOrganization is the autonomous system organization of - // the client as far as the server is concerned. - AutonomousSystemOrganization string `protobuf:"bytes,8,opt,name=AutonomousSystemOrganization,json=autonomous_system_organization,proto3" json:"AutonomousSystemOrganization,omitempty"` + // Epoch contains the epoch information for the block. + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + // Slot contains the slot information for the block. + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` + // Version contains information about the version of the block. + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + // TransactionsCount contains the number of transactions in the block + TransactionsCount *wrapperspb.UInt64Value `protobuf:"bytes,4,opt,name=transactions_count,proto3" json:"transactions_count,omitempty"` + // TransactionsTotalBytes contains the total bytes size of transactions + TransactionsTotalBytes *wrapperspb.UInt64Value `protobuf:"bytes,5,opt,name=transactions_total_bytes,proto3" json:"transactions_total_bytes,omitempty"` + // CompressedTotalBytesCompressed contains the total bytes size of + // transactions with snappy compression + TransactionsTotalBytesCompressed *wrapperspb.UInt64Value `protobuf:"bytes,6,opt,name=transactions_total_bytes_compressed,proto3" json:"transactions_total_bytes_compressed,omitempty"` + // TotalBytes contains the total bytes size of block + TotalBytes *wrapperspb.UInt64Value `protobuf:"bytes,7,opt,name=total_bytes,proto3" json:"total_bytes,omitempty"` + // TotalBytesCompressed contains the total bytes size of block with snappy + // compression + TotalBytesCompressed *wrapperspb.UInt64Value `protobuf:"bytes,8,opt,name=total_bytes_compressed,proto3" json:"total_bytes_compressed,omitempty"` + // ExecutionValue contains the total execution payload value, in Wei. + ExecutionValue string `protobuf:"bytes,9,opt,name=execution_value,proto3" json:"execution_value,omitempty"` + // ConsensusValue represents the rewards paid to the proposer for this block, in Wei. + ConsensusValue string `protobuf:"bytes,10,opt,name=consensus_value,proto3" json:"consensus_value,omitempty"` + // RequestDurationMs is the duration of the produce block request (in milliseconds). + RequestDurationMs *wrapperspb.UInt64Value `protobuf:"bytes,11,opt,name=request_duration_ms,proto3" json:"request_duration_ms,omitempty"` + // RequestedAt is the time the call was made to produce the block. + RequestedAt *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=requested_at,proto3" json:"requested_at,omitempty"` } -func (x *ServerMeta_Geo) Reset() { - *x = ServerMeta_Geo{} +func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) Reset() { + *x = ClientMeta_AdditionalEthV3ValidatorBlockData{} if protoimpl.UnsafeEnabled { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12225,13 +12440,13 @@ func (x *ServerMeta_Geo) Reset() { } } -func (x *ServerMeta_Geo) String() string { +func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ServerMeta_Geo) ProtoMessage() {} +func (*ClientMeta_AdditionalEthV3ValidatorBlockData) ProtoMessage() {} -func (x *ServerMeta_Geo) ProtoReflect() protoreflect.Message { +func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12243,87 +12458,117 @@ func (x *ServerMeta_Geo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ServerMeta_Geo.ProtoReflect.Descriptor instead. -func (*ServerMeta_Geo) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 1} +// Deprecated: Use ClientMeta_AdditionalEthV3ValidatorBlockData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalEthV3ValidatorBlockData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 99} } -func (x *ServerMeta_Geo) GetCity() string { +func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetEpoch() *EpochV2 { if x != nil { - return x.City + return x.Epoch } - return "" + return nil } -func (x *ServerMeta_Geo) GetCountry() string { +func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetSlot() *SlotV2 { if x != nil { - return x.Country + return x.Slot } - return "" + return nil } -func (x *ServerMeta_Geo) GetCountryCode() string { +func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetVersion() string { if x != nil { - return x.CountryCode + return x.Version } return "" } -func (x *ServerMeta_Geo) GetContinentCode() string { +func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetTransactionsCount() *wrapperspb.UInt64Value { if x != nil { - return x.ContinentCode + return x.TransactionsCount } - return "" + return nil } -func (x *ServerMeta_Geo) GetLatitude() float64 { +func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetTransactionsTotalBytes() *wrapperspb.UInt64Value { if x != nil { - return x.Latitude + return x.TransactionsTotalBytes } - return 0 + return nil } -func (x *ServerMeta_Geo) GetLongitude() float64 { +func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetTransactionsTotalBytesCompressed() *wrapperspb.UInt64Value { if x != nil { - return x.Longitude + return x.TransactionsTotalBytesCompressed } - return 0 + return nil } -func (x *ServerMeta_Geo) GetAutonomousSystemNumber() uint32 { +func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetTotalBytes() *wrapperspb.UInt64Value { if x != nil { - return x.AutonomousSystemNumber + return x.TotalBytes } - return 0 + return nil } -func (x *ServerMeta_Geo) GetAutonomousSystemOrganization() string { +func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetTotalBytesCompressed() *wrapperspb.UInt64Value { if x != nil { - return x.AutonomousSystemOrganization + return x.TotalBytesCompressed + } + return nil +} + +func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetExecutionValue() string { + if x != nil { + return x.ExecutionValue } return "" } -type ServerMeta_Client struct { +func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetConsensusValue() string { + if x != nil { + return x.ConsensusValue + } + return "" +} + +func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetRequestDurationMs() *wrapperspb.UInt64Value { + if x != nil { + return x.RequestDurationMs + } + return nil +} + +func (x *ClientMeta_AdditionalEthV3ValidatorBlockData) GetRequestedAt() *timestamppb.Timestamp { + if x != nil { + return x.RequestedAt + } + return nil +} + +// AdditionalMevRelayValidatorRegistrationData contains additional data about the mev relay validator registration event. +type ClientMeta_AdditionalMevRelayValidatorRegistrationData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // IP is the ip of the client as far as the server is concerned. - IP string `protobuf:"bytes,1,opt,name=IP,json=ip,proto3" json:"IP,omitempty"` - // Geo contains geo information about the client as far as the server is - // concerned. - Geo *ServerMeta_Geo `protobuf:"bytes,2,opt,name=geo,proto3" json:"geo,omitempty"` - // Group contains the group name of the client as far as the server is - // concerned. - Group string `protobuf:"bytes,3,opt,name=Group,json=group,proto3" json:"Group,omitempty"` - // User contains the user name of the client as far as the server is - // concerned. - User string `protobuf:"bytes,4,opt,name=User,json=user,proto3" json:"User,omitempty"` + // Relay is the relay that received the validator registration. + Relay *mevrelay.Relay `protobuf:"bytes,1,opt,name=relay,proto3" json:"relay,omitempty"` + // Slot is the slot the validator registration was received for. This is derived from the validator registration `timestamp` field. + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` + // WallclockSlot contains the slot information of when the validator registration was received from the relay. + WallclockSlot *SlotV2 `protobuf:"bytes,3,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` + // Epoch is the epoch the validator registration was received for. This is derived from the validator registration `timestamp` field. + Epoch *EpochV2 `protobuf:"bytes,4,opt,name=epoch,proto3" json:"epoch,omitempty"` + // WallclockEpoch contains the epoch information of when the validator registration was requested from the relay. + WallclockEpoch *EpochV2 `protobuf:"bytes,5,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` + // ValidatorIndex is the index of the validator that was registered. + ValidatorIndex *wrapperspb.UInt64Value `protobuf:"bytes,6,opt,name=validator_index,proto3" json:"validator_index,omitempty"` } -func (x *ServerMeta_Client) Reset() { - *x = ServerMeta_Client{} +func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) Reset() { + *x = ClientMeta_AdditionalMevRelayValidatorRegistrationData{} if protoimpl.UnsafeEnabled { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12331,13 +12576,13 @@ func (x *ServerMeta_Client) Reset() { } } -func (x *ServerMeta_Client) String() string { +func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ServerMeta_Client) ProtoMessage() {} +func (*ClientMeta_AdditionalMevRelayValidatorRegistrationData) ProtoMessage() {} -func (x *ServerMeta_Client) ProtoReflect() protoreflect.Message { +func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12349,50 +12594,69 @@ func (x *ServerMeta_Client) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ServerMeta_Client.ProtoReflect.Descriptor instead. -func (*ServerMeta_Client) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 2} +// Deprecated: Use ClientMeta_AdditionalMevRelayValidatorRegistrationData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalMevRelayValidatorRegistrationData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 100} } -func (x *ServerMeta_Client) GetIP() string { +func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) GetRelay() *mevrelay.Relay { if x != nil { - return x.IP + return x.Relay } - return "" + return nil } -func (x *ServerMeta_Client) GetGeo() *ServerMeta_Geo { +func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) GetSlot() *SlotV2 { if x != nil { - return x.Geo + return x.Slot } return nil } -func (x *ServerMeta_Client) GetGroup() string { +func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) GetWallclockSlot() *SlotV2 { if x != nil { - return x.Group + return x.WallclockSlot } - return "" + return nil } -func (x *ServerMeta_Client) GetUser() string { +func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) GetEpoch() *EpochV2 { if x != nil { - return x.User + return x.Epoch } - return "" + return nil } -type ServerMeta_Peer struct { +func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) GetWallclockEpoch() *EpochV2 { + if x != nil { + return x.WallclockEpoch + } + return nil +} + +func (x *ClientMeta_AdditionalMevRelayValidatorRegistrationData) GetValidatorIndex() *wrapperspb.UInt64Value { + if x != nil { + return x.ValidatorIndex + } + return nil +} + +// AdditionalNodeRecordConsensusData contains additional data about the node record consensus event. +type ClientMeta_AdditionalNodeRecordConsensusData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Geo contains geo information about the peer - Geo *ServerMeta_Geo `protobuf:"bytes,1,opt,name=geo,proto3" json:"geo,omitempty"` + // FinalizedEpoch is the epoch the node record consensus was received for. + FinalizedEpoch *EpochV2 `protobuf:"bytes,2,opt,name=finalized_epoch,json=finalizedEpoch,proto3" json:"finalized_epoch,omitempty"` + // HeadSlot is the slot the node record consensus was received for. + HeadSlot *SlotV2 `protobuf:"bytes,3,opt,name=head_slot,json=headSlot,proto3" json:"head_slot,omitempty"` + // HeadEpoch is the epoch the node record consensus was received for. + HeadEpoch *EpochV2 `protobuf:"bytes,4,opt,name=head_epoch,json=headEpoch,proto3" json:"head_epoch,omitempty"` } -func (x *ServerMeta_Peer) Reset() { - *x = ServerMeta_Peer{} +func (x *ClientMeta_AdditionalNodeRecordConsensusData) Reset() { + *x = ClientMeta_AdditionalNodeRecordConsensusData{} if protoimpl.UnsafeEnabled { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12400,13 +12664,13 @@ func (x *ServerMeta_Peer) Reset() { } } -func (x *ServerMeta_Peer) String() string { +func (x *ClientMeta_AdditionalNodeRecordConsensusData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ServerMeta_Peer) ProtoMessage() {} +func (*ClientMeta_AdditionalNodeRecordConsensusData) ProtoMessage() {} -func (x *ServerMeta_Peer) ProtoReflect() protoreflect.Message { +func (x *ClientMeta_AdditionalNodeRecordConsensusData) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12418,28 +12682,47 @@ func (x *ServerMeta_Peer) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ServerMeta_Peer.ProtoReflect.Descriptor instead. -func (*ServerMeta_Peer) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 3} +// Deprecated: Use ClientMeta_AdditionalNodeRecordConsensusData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalNodeRecordConsensusData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 101} } -func (x *ServerMeta_Peer) GetGeo() *ServerMeta_Geo { +func (x *ClientMeta_AdditionalNodeRecordConsensusData) GetFinalizedEpoch() *EpochV2 { if x != nil { - return x.Geo + return x.FinalizedEpoch } return nil } -type ServerMeta_AdditionalBeaconP2PAttestationData struct { +func (x *ClientMeta_AdditionalNodeRecordConsensusData) GetHeadSlot() *SlotV2 { + if x != nil { + return x.HeadSlot + } + return nil +} + +func (x *ClientMeta_AdditionalNodeRecordConsensusData) GetHeadEpoch() *EpochV2 { + if x != nil { + return x.HeadEpoch + } + return nil +} + +// AdditionalConsensusEngineAPINewPayloadData contains additional metadata about the +// engine_newPayload call event. +type ClientMeta_AdditionalConsensusEngineAPINewPayloadData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Peer *ServerMeta_Peer `protobuf:"bytes,1,opt,name=peer,proto3" json:"peer,omitempty"` + // Epoch contains the epoch information for the slot. + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + // Slot contains the slot information. + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` } -func (x *ServerMeta_AdditionalBeaconP2PAttestationData) Reset() { - *x = ServerMeta_AdditionalBeaconP2PAttestationData{} +func (x *ClientMeta_AdditionalConsensusEngineAPINewPayloadData) Reset() { + *x = ClientMeta_AdditionalConsensusEngineAPINewPayloadData{} if protoimpl.UnsafeEnabled { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12447,13 +12730,13 @@ func (x *ServerMeta_AdditionalBeaconP2PAttestationData) Reset() { } } -func (x *ServerMeta_AdditionalBeaconP2PAttestationData) String() string { +func (x *ClientMeta_AdditionalConsensusEngineAPINewPayloadData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ServerMeta_AdditionalBeaconP2PAttestationData) ProtoMessage() {} +func (*ClientMeta_AdditionalConsensusEngineAPINewPayloadData) ProtoMessage() {} -func (x *ServerMeta_AdditionalBeaconP2PAttestationData) ProtoReflect() protoreflect.Message { +func (x *ClientMeta_AdditionalConsensusEngineAPINewPayloadData) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12465,28 +12748,40 @@ func (x *ServerMeta_AdditionalBeaconP2PAttestationData) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use ServerMeta_AdditionalBeaconP2PAttestationData.ProtoReflect.Descriptor instead. -func (*ServerMeta_AdditionalBeaconP2PAttestationData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 4} +// Deprecated: Use ClientMeta_AdditionalConsensusEngineAPINewPayloadData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalConsensusEngineAPINewPayloadData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 102} } -func (x *ServerMeta_AdditionalBeaconP2PAttestationData) GetPeer() *ServerMeta_Peer { +func (x *ClientMeta_AdditionalConsensusEngineAPINewPayloadData) GetEpoch() *EpochV2 { if x != nil { - return x.Peer + return x.Epoch } return nil } -type ServerMeta_AdditionalLibp2PTraceConnectedData struct { +func (x *ClientMeta_AdditionalConsensusEngineAPINewPayloadData) GetSlot() *SlotV2 { + if x != nil { + return x.Slot + } + return nil +} + +// AdditionalConsensusEngineAPIGetBlobsData contains additional metadata about the +// engine_getBlobs call event. +type ClientMeta_AdditionalConsensusEngineAPIGetBlobsData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Peer *ServerMeta_Peer `protobuf:"bytes,1,opt,name=peer,proto3" json:"peer,omitempty"` + // Epoch contains the epoch information for the slot. + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + // Slot contains the slot information. + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` } -func (x *ServerMeta_AdditionalLibp2PTraceConnectedData) Reset() { - *x = ServerMeta_AdditionalLibp2PTraceConnectedData{} +func (x *ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) Reset() { + *x = ClientMeta_AdditionalConsensusEngineAPIGetBlobsData{} if protoimpl.UnsafeEnabled { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12494,13 +12789,13 @@ func (x *ServerMeta_AdditionalLibp2PTraceConnectedData) Reset() { } } -func (x *ServerMeta_AdditionalLibp2PTraceConnectedData) String() string { +func (x *ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ServerMeta_AdditionalLibp2PTraceConnectedData) ProtoMessage() {} +func (*ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) ProtoMessage() {} -func (x *ServerMeta_AdditionalLibp2PTraceConnectedData) ProtoReflect() protoreflect.Message { +func (x *ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12512,28 +12807,40 @@ func (x *ServerMeta_AdditionalLibp2PTraceConnectedData) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use ServerMeta_AdditionalLibp2PTraceConnectedData.ProtoReflect.Descriptor instead. -func (*ServerMeta_AdditionalLibp2PTraceConnectedData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 5} +// Deprecated: Use ClientMeta_AdditionalConsensusEngineAPIGetBlobsData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 103} } -func (x *ServerMeta_AdditionalLibp2PTraceConnectedData) GetPeer() *ServerMeta_Peer { +func (x *ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) GetEpoch() *EpochV2 { if x != nil { - return x.Peer + return x.Epoch } return nil } -type ServerMeta_AdditionalLibp2PTraceDisconnectedData struct { +func (x *ClientMeta_AdditionalConsensusEngineAPIGetBlobsData) GetSlot() *SlotV2 { + if x != nil { + return x.Slot + } + return nil +} + +// AdditionalEthV1BeaconBlobData contains additional metadata about the +// beacon blob event derived from block's blob_kzg_commitments. +type ClientMeta_AdditionalEthV1BeaconBlobData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Peer *ServerMeta_Peer `protobuf:"bytes,1,opt,name=peer,proto3" json:"peer,omitempty"` + // Epoch contains the epoch information for the blob. + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + // Slot contains the slot information for the blob. + Slot *SlotV2 `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"` } -func (x *ServerMeta_AdditionalLibp2PTraceDisconnectedData) Reset() { - *x = ServerMeta_AdditionalLibp2PTraceDisconnectedData{} +func (x *ClientMeta_AdditionalEthV1BeaconBlobData) Reset() { + *x = ClientMeta_AdditionalEthV1BeaconBlobData{} if protoimpl.UnsafeEnabled { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12541,13 +12848,13 @@ func (x *ServerMeta_AdditionalLibp2PTraceDisconnectedData) Reset() { } } -func (x *ServerMeta_AdditionalLibp2PTraceDisconnectedData) String() string { +func (x *ClientMeta_AdditionalEthV1BeaconBlobData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ServerMeta_AdditionalLibp2PTraceDisconnectedData) ProtoMessage() {} +func (*ClientMeta_AdditionalEthV1BeaconBlobData) ProtoMessage() {} -func (x *ServerMeta_AdditionalLibp2PTraceDisconnectedData) ProtoReflect() protoreflect.Message { +func (x *ClientMeta_AdditionalEthV1BeaconBlobData) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12559,28 +12866,38 @@ func (x *ServerMeta_AdditionalLibp2PTraceDisconnectedData) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use ServerMeta_AdditionalLibp2PTraceDisconnectedData.ProtoReflect.Descriptor instead. -func (*ServerMeta_AdditionalLibp2PTraceDisconnectedData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 6} +// Deprecated: Use ClientMeta_AdditionalEthV1BeaconBlobData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalEthV1BeaconBlobData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 104} } -func (x *ServerMeta_AdditionalLibp2PTraceDisconnectedData) GetPeer() *ServerMeta_Peer { +func (x *ClientMeta_AdditionalEthV1BeaconBlobData) GetEpoch() *EpochV2 { if x != nil { - return x.Peer + return x.Epoch } return nil } -type ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData struct { +func (x *ClientMeta_AdditionalEthV1BeaconBlobData) GetSlot() *SlotV2 { + if x != nil { + return x.Slot + } + return nil +} + +type ClientMeta_Ethereum_Network struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Peer *ServerMeta_Peer `protobuf:"bytes,1,opt,name=peer,proto3" json:"peer,omitempty"` + // Name is the name of the network. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // ID is the network ID of the network. + Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` } -func (x *ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) Reset() { - *x = ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData{} +func (x *ClientMeta_Ethereum_Network) Reset() { + *x = ClientMeta_Ethereum_Network{} if protoimpl.UnsafeEnabled { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12588,13 +12905,13 @@ func (x *ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) Reset() { } } -func (x *ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) String() string { +func (x *ClientMeta_Ethereum_Network) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) ProtoMessage() {} +func (*ClientMeta_Ethereum_Network) ProtoMessage() {} -func (x *ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) ProtoReflect() protoreflect.Message { +func (x *ClientMeta_Ethereum_Network) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12606,28 +12923,46 @@ func (x *ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData.ProtoReflect.Descriptor instead. -func (*ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 7} +// Deprecated: Use ClientMeta_Ethereum_Network.ProtoReflect.Descriptor instead. +func (*ClientMeta_Ethereum_Network) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 0, 0} } -func (x *ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) GetPeer() *ServerMeta_Peer { +func (x *ClientMeta_Ethereum_Network) GetName() string { if x != nil { - return x.Peer + return x.Name } - return nil + return "" } -type ServerMeta_AdditionalLibp2PTraceIdentifyData struct { +func (x *ClientMeta_Ethereum_Network) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +type ClientMeta_Ethereum_Execution struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Peer *ServerMeta_Peer `protobuf:"bytes,1,opt,name=peer,proto3" json:"peer,omitempty"` + // ForkID is the fork ID of the execution client. + ForkId *ForkID `protobuf:"bytes,1,opt,name=fork_id,proto3" json:"fork_id,omitempty"` + // Implementation is the name of the execution client (e.g., "Geth", "Besu", "Nethermind"). + Implementation string `protobuf:"bytes,2,opt,name=implementation,proto3" json:"implementation,omitempty"` + // Version is the full version string of the execution client. + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + // VersionMajor is the major version number. + VersionMajor string `protobuf:"bytes,4,opt,name=version_major,proto3" json:"version_major,omitempty"` + // VersionMinor is the minor version number. + VersionMinor string `protobuf:"bytes,5,opt,name=version_minor,proto3" json:"version_minor,omitempty"` + // VersionPatch is the patch version number. + VersionPatch string `protobuf:"bytes,6,opt,name=version_patch,proto3" json:"version_patch,omitempty"` } -func (x *ServerMeta_AdditionalLibp2PTraceIdentifyData) Reset() { - *x = ServerMeta_AdditionalLibp2PTraceIdentifyData{} +func (x *ClientMeta_Ethereum_Execution) Reset() { + *x = ClientMeta_Ethereum_Execution{} if protoimpl.UnsafeEnabled { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12635,13 +12970,13 @@ func (x *ServerMeta_AdditionalLibp2PTraceIdentifyData) Reset() { } } -func (x *ServerMeta_AdditionalLibp2PTraceIdentifyData) String() string { +func (x *ClientMeta_Ethereum_Execution) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ServerMeta_AdditionalLibp2PTraceIdentifyData) ProtoMessage() {} +func (*ClientMeta_Ethereum_Execution) ProtoMessage() {} -func (x *ServerMeta_AdditionalLibp2PTraceIdentifyData) ProtoReflect() protoreflect.Message { +func (x *ClientMeta_Ethereum_Execution) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12653,42 +12988,80 @@ func (x *ServerMeta_AdditionalLibp2PTraceIdentifyData) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use ServerMeta_AdditionalLibp2PTraceIdentifyData.ProtoReflect.Descriptor instead. -func (*ServerMeta_AdditionalLibp2PTraceIdentifyData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 8} +// Deprecated: Use ClientMeta_Ethereum_Execution.ProtoReflect.Descriptor instead. +func (*ClientMeta_Ethereum_Execution) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 0, 1} } -func (x *ServerMeta_AdditionalLibp2PTraceIdentifyData) GetPeer() *ServerMeta_Peer { +func (x *ClientMeta_Ethereum_Execution) GetForkId() *ForkID { if x != nil { - return x.Peer + return x.ForkId } return nil } -type ServerMeta_AdditionalNodeRecordConsensusData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *ClientMeta_Ethereum_Execution) GetImplementation() string { + if x != nil { + return x.Implementation + } + return "" +} - Geo *ServerMeta_Geo `protobuf:"bytes,1,opt,name=geo,proto3" json:"geo,omitempty"` +func (x *ClientMeta_Ethereum_Execution) GetVersion() string { + if x != nil { + return x.Version + } + return "" } -func (x *ServerMeta_AdditionalNodeRecordConsensusData) Reset() { - *x = ServerMeta_AdditionalNodeRecordConsensusData{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[135] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ClientMeta_Ethereum_Execution) GetVersionMajor() string { + if x != nil { + return x.VersionMajor } + return "" } -func (x *ServerMeta_AdditionalNodeRecordConsensusData) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ClientMeta_Ethereum_Execution) GetVersionMinor() string { + if x != nil { + return x.VersionMinor + } + return "" } -func (*ServerMeta_AdditionalNodeRecordConsensusData) ProtoMessage() {} +func (x *ClientMeta_Ethereum_Execution) GetVersionPatch() string { + if x != nil { + return x.VersionPatch + } + return "" +} -func (x *ServerMeta_AdditionalNodeRecordConsensusData) ProtoReflect() protoreflect.Message { +type ClientMeta_Ethereum_Consensus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Implementation is the name of the consensus client. + Implementation string `protobuf:"bytes,1,opt,name=implementation,proto3" json:"implementation,omitempty"` + // Version is the version of the consensus client. + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` +} + +func (x *ClientMeta_Ethereum_Consensus) Reset() { + *x = ClientMeta_Ethereum_Consensus{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[135] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientMeta_Ethereum_Consensus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientMeta_Ethereum_Consensus) ProtoMessage() {} + +func (x *ClientMeta_Ethereum_Consensus) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12700,28 +13073,36 @@ func (x *ServerMeta_AdditionalNodeRecordConsensusData) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use ServerMeta_AdditionalNodeRecordConsensusData.ProtoReflect.Descriptor instead. -func (*ServerMeta_AdditionalNodeRecordConsensusData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 9} +// Deprecated: Use ClientMeta_Ethereum_Consensus.ProtoReflect.Descriptor instead. +func (*ClientMeta_Ethereum_Consensus) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{22, 0, 2} } -func (x *ServerMeta_AdditionalNodeRecordConsensusData) GetGeo() *ServerMeta_Geo { +func (x *ClientMeta_Ethereum_Consensus) GetImplementation() string { if x != nil { - return x.Geo + return x.Implementation } - return nil + return "" } -type ServerMeta_AdditionalNodeRecordExecutionData struct { +func (x *ClientMeta_Ethereum_Consensus) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +type ServerMeta_Event struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Geo *ServerMeta_Geo `protobuf:"bytes,1,opt,name=geo,proto3" json:"geo,omitempty"` + // / DateTime is the date and time of the event as seen by the server. + ReceivedDateTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=received_date_time,proto3" json:"received_date_time,omitempty"` } -func (x *ServerMeta_AdditionalNodeRecordExecutionData) Reset() { - *x = ServerMeta_AdditionalNodeRecordExecutionData{} +func (x *ServerMeta_Event) Reset() { + *x = ServerMeta_Event{} if protoimpl.UnsafeEnabled { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12729,13 +13110,13 @@ func (x *ServerMeta_AdditionalNodeRecordExecutionData) Reset() { } } -func (x *ServerMeta_AdditionalNodeRecordExecutionData) String() string { +func (x *ServerMeta_Event) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ServerMeta_AdditionalNodeRecordExecutionData) ProtoMessage() {} +func (*ServerMeta_Event) ProtoMessage() {} -func (x *ServerMeta_AdditionalNodeRecordExecutionData) ProtoReflect() protoreflect.Message { +func (x *ServerMeta_Event) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12747,36 +13128,49 @@ func (x *ServerMeta_AdditionalNodeRecordExecutionData) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use ServerMeta_AdditionalNodeRecordExecutionData.ProtoReflect.Descriptor instead. -func (*ServerMeta_AdditionalNodeRecordExecutionData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 10} +// Deprecated: Use ServerMeta_Event.ProtoReflect.Descriptor instead. +func (*ServerMeta_Event) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 0} } -func (x *ServerMeta_AdditionalNodeRecordExecutionData) GetGeo() *ServerMeta_Geo { +func (x *ServerMeta_Event) GetReceivedDateTime() *timestamppb.Timestamp { if x != nil { - return x.Geo + return x.ReceivedDateTime } return nil } -// StateReads contains state read statistics. -type ExecutionBlockMetrics_StateReads struct { +type ServerMeta_Geo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Accounts is the number of account reads. - Accounts *wrapperspb.UInt64Value `protobuf:"bytes,1,opt,name=accounts,proto3" json:"accounts,omitempty"` - // StorageSlots is the number of storage slot reads. - StorageSlots *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=storage_slots,proto3" json:"storage_slots,omitempty"` - // Code is the number of code reads. - Code *wrapperspb.UInt64Value `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"` - // CodeBytes is the total bytes of code read. - CodeBytes *wrapperspb.UInt64Value `protobuf:"bytes,4,opt,name=code_bytes,proto3" json:"code_bytes,omitempty"` + // City is the city of the client as far as the server is concerned. + City string `protobuf:"bytes,1,opt,name=City,json=city,proto3" json:"City,omitempty"` + // Country is the country of the client as far as the server is concerned. + Country string `protobuf:"bytes,2,opt,name=Country,json=country,proto3" json:"Country,omitempty"` + // CountryCode is the country code of the client as far as the server is + // concerned. + CountryCode string `protobuf:"bytes,3,opt,name=CountryCode,json=country_code,proto3" json:"CountryCode,omitempty"` + // ContinentCode is the continent code of the client as far as the server + // is concerned. + ContinentCode string `protobuf:"bytes,4,opt,name=ContinentCode,json=continent_code,proto3" json:"ContinentCode,omitempty"` + // Latitude is the latitude of the client as far as the server is + // concerned. + Latitude float64 `protobuf:"fixed64,5,opt,name=Latitude,json=latitude,proto3" json:"Latitude,omitempty"` + // Longitude is the longitude of the client as far as the server is + // concerned. + Longitude float64 `protobuf:"fixed64,6,opt,name=Longitude,json=longitude,proto3" json:"Longitude,omitempty"` + // AutonomousSystemNumber is the autonomous system number of the client as + // far as the server is concerned. + AutonomousSystemNumber uint32 `protobuf:"varint,7,opt,name=AutonomousSystemNumber,json=autonomous_system_number,proto3" json:"AutonomousSystemNumber,omitempty"` + // AutonomousSystemOrganization is the autonomous system organization of + // the client as far as the server is concerned. + AutonomousSystemOrganization string `protobuf:"bytes,8,opt,name=AutonomousSystemOrganization,json=autonomous_system_organization,proto3" json:"AutonomousSystemOrganization,omitempty"` } -func (x *ExecutionBlockMetrics_StateReads) Reset() { - *x = ExecutionBlockMetrics_StateReads{} +func (x *ServerMeta_Geo) Reset() { + *x = ServerMeta_Geo{} if protoimpl.UnsafeEnabled { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12784,13 +13178,13 @@ func (x *ExecutionBlockMetrics_StateReads) Reset() { } } -func (x *ExecutionBlockMetrics_StateReads) String() string { +func (x *ServerMeta_Geo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ExecutionBlockMetrics_StateReads) ProtoMessage() {} +func (*ServerMeta_Geo) ProtoMessage() {} -func (x *ExecutionBlockMetrics_StateReads) ProtoReflect() protoreflect.Message { +func (x *ServerMeta_Geo) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12802,61 +13196,87 @@ func (x *ExecutionBlockMetrics_StateReads) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ExecutionBlockMetrics_StateReads.ProtoReflect.Descriptor instead. -func (*ExecutionBlockMetrics_StateReads) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{26, 0} +// Deprecated: Use ServerMeta_Geo.ProtoReflect.Descriptor instead. +func (*ServerMeta_Geo) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 1} } -func (x *ExecutionBlockMetrics_StateReads) GetAccounts() *wrapperspb.UInt64Value { +func (x *ServerMeta_Geo) GetCity() string { if x != nil { - return x.Accounts + return x.City } - return nil + return "" } -func (x *ExecutionBlockMetrics_StateReads) GetStorageSlots() *wrapperspb.UInt64Value { +func (x *ServerMeta_Geo) GetCountry() string { if x != nil { - return x.StorageSlots + return x.Country } - return nil + return "" } -func (x *ExecutionBlockMetrics_StateReads) GetCode() *wrapperspb.UInt64Value { +func (x *ServerMeta_Geo) GetCountryCode() string { if x != nil { - return x.Code + return x.CountryCode } - return nil + return "" } -func (x *ExecutionBlockMetrics_StateReads) GetCodeBytes() *wrapperspb.UInt64Value { +func (x *ServerMeta_Geo) GetContinentCode() string { if x != nil { - return x.CodeBytes + return x.ContinentCode } - return nil + return "" } -// StateWrites contains state write statistics. -type ExecutionBlockMetrics_StateWrites struct { +func (x *ServerMeta_Geo) GetLatitude() float64 { + if x != nil { + return x.Latitude + } + return 0 +} + +func (x *ServerMeta_Geo) GetLongitude() float64 { + if x != nil { + return x.Longitude + } + return 0 +} + +func (x *ServerMeta_Geo) GetAutonomousSystemNumber() uint32 { + if x != nil { + return x.AutonomousSystemNumber + } + return 0 +} + +func (x *ServerMeta_Geo) GetAutonomousSystemOrganization() string { + if x != nil { + return x.AutonomousSystemOrganization + } + return "" +} + +type ServerMeta_Client struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Accounts is the number of account writes. - Accounts *wrapperspb.UInt64Value `protobuf:"bytes,1,opt,name=accounts,proto3" json:"accounts,omitempty"` - // AccountsDeleted is the number of accounts deleted. - AccountsDeleted *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=accounts_deleted,proto3" json:"accounts_deleted,omitempty"` - // StorageSlots is the number of storage slot writes. - StorageSlots *wrapperspb.UInt64Value `protobuf:"bytes,3,opt,name=storage_slots,proto3" json:"storage_slots,omitempty"` - // StorageSlotsDeleted is the number of storage slots deleted. - StorageSlotsDeleted *wrapperspb.UInt64Value `protobuf:"bytes,4,opt,name=storage_slots_deleted,proto3" json:"storage_slots_deleted,omitempty"` - // Code is the number of code writes. - Code *wrapperspb.UInt64Value `protobuf:"bytes,5,opt,name=code,proto3" json:"code,omitempty"` - // CodeBytes is the total bytes of code written. - CodeBytes *wrapperspb.UInt64Value `protobuf:"bytes,6,opt,name=code_bytes,proto3" json:"code_bytes,omitempty"` + // IP is the ip of the client as far as the server is concerned. + IP string `protobuf:"bytes,1,opt,name=IP,json=ip,proto3" json:"IP,omitempty"` + // Geo contains geo information about the client as far as the server is + // concerned. + Geo *ServerMeta_Geo `protobuf:"bytes,2,opt,name=geo,proto3" json:"geo,omitempty"` + // Group contains the group name of the client as far as the server is + // concerned. + Group string `protobuf:"bytes,3,opt,name=Group,json=group,proto3" json:"Group,omitempty"` + // User contains the user name of the client as far as the server is + // concerned. + User string `protobuf:"bytes,4,opt,name=User,json=user,proto3" json:"User,omitempty"` } -func (x *ExecutionBlockMetrics_StateWrites) Reset() { - *x = ExecutionBlockMetrics_StateWrites{} +func (x *ServerMeta_Client) Reset() { + *x = ServerMeta_Client{} if protoimpl.UnsafeEnabled { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12864,13 +13284,13 @@ func (x *ExecutionBlockMetrics_StateWrites) Reset() { } } -func (x *ExecutionBlockMetrics_StateWrites) String() string { +func (x *ServerMeta_Client) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ExecutionBlockMetrics_StateWrites) ProtoMessage() {} +func (*ServerMeta_Client) ProtoMessage() {} -func (x *ExecutionBlockMetrics_StateWrites) ProtoReflect() protoreflect.Message { +func (x *ServerMeta_Client) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12882,69 +13302,50 @@ func (x *ExecutionBlockMetrics_StateWrites) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use ExecutionBlockMetrics_StateWrites.ProtoReflect.Descriptor instead. -func (*ExecutionBlockMetrics_StateWrites) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{26, 1} -} - -func (x *ExecutionBlockMetrics_StateWrites) GetAccounts() *wrapperspb.UInt64Value { - if x != nil { - return x.Accounts - } - return nil -} - -func (x *ExecutionBlockMetrics_StateWrites) GetAccountsDeleted() *wrapperspb.UInt64Value { - if x != nil { - return x.AccountsDeleted - } - return nil +// Deprecated: Use ServerMeta_Client.ProtoReflect.Descriptor instead. +func (*ServerMeta_Client) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 2} } -func (x *ExecutionBlockMetrics_StateWrites) GetStorageSlots() *wrapperspb.UInt64Value { +func (x *ServerMeta_Client) GetIP() string { if x != nil { - return x.StorageSlots + return x.IP } - return nil + return "" } -func (x *ExecutionBlockMetrics_StateWrites) GetStorageSlotsDeleted() *wrapperspb.UInt64Value { +func (x *ServerMeta_Client) GetGeo() *ServerMeta_Geo { if x != nil { - return x.StorageSlotsDeleted + return x.Geo } return nil } -func (x *ExecutionBlockMetrics_StateWrites) GetCode() *wrapperspb.UInt64Value { +func (x *ServerMeta_Client) GetGroup() string { if x != nil { - return x.Code + return x.Group } - return nil + return "" } -func (x *ExecutionBlockMetrics_StateWrites) GetCodeBytes() *wrapperspb.UInt64Value { +func (x *ServerMeta_Client) GetUser() string { if x != nil { - return x.CodeBytes + return x.User } - return nil + return "" } -// CacheEntry contains cache hit/miss statistics. -type ExecutionBlockMetrics_CacheEntry struct { +type ServerMeta_Peer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Hits is the number of cache hits. - Hits *wrapperspb.Int64Value `protobuf:"bytes,1,opt,name=hits,proto3" json:"hits,omitempty"` - // Misses is the number of cache misses. - Misses *wrapperspb.Int64Value `protobuf:"bytes,2,opt,name=misses,proto3" json:"misses,omitempty"` - // HitRate is the cache hit rate as a percentage. - HitRate *wrapperspb.DoubleValue `protobuf:"bytes,3,opt,name=hit_rate,proto3" json:"hit_rate,omitempty"` + // Geo contains geo information about the peer + Geo *ServerMeta_Geo `protobuf:"bytes,1,opt,name=geo,proto3" json:"geo,omitempty"` } -func (x *ExecutionBlockMetrics_CacheEntry) Reset() { - *x = ExecutionBlockMetrics_CacheEntry{} +func (x *ServerMeta_Peer) Reset() { + *x = ServerMeta_Peer{} if protoimpl.UnsafeEnabled { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12952,13 +13353,13 @@ func (x *ExecutionBlockMetrics_CacheEntry) Reset() { } } -func (x *ExecutionBlockMetrics_CacheEntry) String() string { +func (x *ServerMeta_Peer) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ExecutionBlockMetrics_CacheEntry) ProtoMessage() {} +func (*ServerMeta_Peer) ProtoMessage() {} -func (x *ExecutionBlockMetrics_CacheEntry) ProtoReflect() protoreflect.Message { +func (x *ServerMeta_Peer) ProtoReflect() protoreflect.Message { mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12970,67 +13371,90 @@ func (x *ExecutionBlockMetrics_CacheEntry) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ExecutionBlockMetrics_CacheEntry.ProtoReflect.Descriptor instead. -func (*ExecutionBlockMetrics_CacheEntry) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{26, 2} +// Deprecated: Use ServerMeta_Peer.ProtoReflect.Descriptor instead. +func (*ServerMeta_Peer) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 3} } -func (x *ExecutionBlockMetrics_CacheEntry) GetHits() *wrapperspb.Int64Value { +func (x *ServerMeta_Peer) GetGeo() *ServerMeta_Geo { if x != nil { - return x.Hits + return x.Geo } return nil } -func (x *ExecutionBlockMetrics_CacheEntry) GetMisses() *wrapperspb.Int64Value { - if x != nil { - return x.Misses +type ServerMeta_AdditionalBeaconP2PAttestationData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Peer *ServerMeta_Peer `protobuf:"bytes,1,opt,name=peer,proto3" json:"peer,omitempty"` +} + +func (x *ServerMeta_AdditionalBeaconP2PAttestationData) Reset() { + *x = ServerMeta_AdditionalBeaconP2PAttestationData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[140] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *ExecutionBlockMetrics_CacheEntry) GetHitRate() *wrapperspb.DoubleValue { +func (x *ServerMeta_AdditionalBeaconP2PAttestationData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerMeta_AdditionalBeaconP2PAttestationData) ProtoMessage() {} + +func (x *ServerMeta_AdditionalBeaconP2PAttestationData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[140] + 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 ServerMeta_AdditionalBeaconP2PAttestationData.ProtoReflect.Descriptor instead. +func (*ServerMeta_AdditionalBeaconP2PAttestationData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 4} +} + +func (x *ServerMeta_AdditionalBeaconP2PAttestationData) GetPeer() *ServerMeta_Peer { if x != nil { - return x.HitRate + return x.Peer } return nil } -// CodeCacheEntry extends CacheEntry with byte-level statistics. -type ExecutionBlockMetrics_CodeCacheEntry struct { +type ServerMeta_AdditionalLibp2PTraceConnectedData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Hits is the number of cache hits. - Hits *wrapperspb.Int64Value `protobuf:"bytes,1,opt,name=hits,proto3" json:"hits,omitempty"` - // Misses is the number of cache misses. - Misses *wrapperspb.Int64Value `protobuf:"bytes,2,opt,name=misses,proto3" json:"misses,omitempty"` - // HitRate is the cache hit rate as a percentage. - HitRate *wrapperspb.DoubleValue `protobuf:"bytes,3,opt,name=hit_rate,proto3" json:"hit_rate,omitempty"` - // HitBytes is the total bytes of cache hits. - HitBytes *wrapperspb.Int64Value `protobuf:"bytes,4,opt,name=hit_bytes,proto3" json:"hit_bytes,omitempty"` - // MissBytes is the total bytes of cache misses. - MissBytes *wrapperspb.Int64Value `protobuf:"bytes,5,opt,name=miss_bytes,proto3" json:"miss_bytes,omitempty"` + Peer *ServerMeta_Peer `protobuf:"bytes,1,opt,name=peer,proto3" json:"peer,omitempty"` } -func (x *ExecutionBlockMetrics_CodeCacheEntry) Reset() { - *x = ExecutionBlockMetrics_CodeCacheEntry{} +func (x *ServerMeta_AdditionalLibp2PTraceConnectedData) Reset() { + *x = ServerMeta_AdditionalLibp2PTraceConnectedData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[140] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ExecutionBlockMetrics_CodeCacheEntry) String() string { +func (x *ServerMeta_AdditionalLibp2PTraceConnectedData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ExecutionBlockMetrics_CodeCacheEntry) ProtoMessage() {} +func (*ServerMeta_AdditionalLibp2PTraceConnectedData) ProtoMessage() {} -func (x *ExecutionBlockMetrics_CodeCacheEntry) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[140] +func (x *ServerMeta_AdditionalLibp2PTraceConnectedData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13041,65 +13465,594 @@ func (x *ExecutionBlockMetrics_CodeCacheEntry) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use ExecutionBlockMetrics_CodeCacheEntry.ProtoReflect.Descriptor instead. -func (*ExecutionBlockMetrics_CodeCacheEntry) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{26, 3} +// Deprecated: Use ServerMeta_AdditionalLibp2PTraceConnectedData.ProtoReflect.Descriptor instead. +func (*ServerMeta_AdditionalLibp2PTraceConnectedData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 5} } -func (x *ExecutionBlockMetrics_CodeCacheEntry) GetHits() *wrapperspb.Int64Value { +func (x *ServerMeta_AdditionalLibp2PTraceConnectedData) GetPeer() *ServerMeta_Peer { if x != nil { - return x.Hits + return x.Peer } return nil } -func (x *ExecutionBlockMetrics_CodeCacheEntry) GetMisses() *wrapperspb.Int64Value { - if x != nil { - return x.Misses +type ServerMeta_AdditionalLibp2PTraceDisconnectedData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Peer *ServerMeta_Peer `protobuf:"bytes,1,opt,name=peer,proto3" json:"peer,omitempty"` +} + +func (x *ServerMeta_AdditionalLibp2PTraceDisconnectedData) Reset() { + *x = ServerMeta_AdditionalLibp2PTraceDisconnectedData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[142] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *ExecutionBlockMetrics_CodeCacheEntry) GetHitRate() *wrapperspb.DoubleValue { +func (x *ServerMeta_AdditionalLibp2PTraceDisconnectedData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerMeta_AdditionalLibp2PTraceDisconnectedData) ProtoMessage() {} + +func (x *ServerMeta_AdditionalLibp2PTraceDisconnectedData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[142] + 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 ServerMeta_AdditionalLibp2PTraceDisconnectedData.ProtoReflect.Descriptor instead. +func (*ServerMeta_AdditionalLibp2PTraceDisconnectedData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 6} +} + +func (x *ServerMeta_AdditionalLibp2PTraceDisconnectedData) GetPeer() *ServerMeta_Peer { if x != nil { - return x.HitRate + return x.Peer } return nil } -func (x *ExecutionBlockMetrics_CodeCacheEntry) GetHitBytes() *wrapperspb.Int64Value { +type ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Peer *ServerMeta_Peer `protobuf:"bytes,1,opt,name=peer,proto3" json:"peer,omitempty"` +} + +func (x *ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) Reset() { + *x = ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[143] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) ProtoMessage() {} + +func (x *ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[143] + 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 ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData.ProtoReflect.Descriptor instead. +func (*ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 7} +} + +func (x *ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData) GetPeer() *ServerMeta_Peer { if x != nil { - return x.HitBytes + return x.Peer } return nil } -func (x *ExecutionBlockMetrics_CodeCacheEntry) GetMissBytes() *wrapperspb.Int64Value { +type ServerMeta_AdditionalLibp2PTraceIdentifyData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Peer *ServerMeta_Peer `protobuf:"bytes,1,opt,name=peer,proto3" json:"peer,omitempty"` +} + +func (x *ServerMeta_AdditionalLibp2PTraceIdentifyData) Reset() { + *x = ServerMeta_AdditionalLibp2PTraceIdentifyData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[144] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServerMeta_AdditionalLibp2PTraceIdentifyData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerMeta_AdditionalLibp2PTraceIdentifyData) ProtoMessage() {} + +func (x *ServerMeta_AdditionalLibp2PTraceIdentifyData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[144] + 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 ServerMeta_AdditionalLibp2PTraceIdentifyData.ProtoReflect.Descriptor instead. +func (*ServerMeta_AdditionalLibp2PTraceIdentifyData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 8} +} + +func (x *ServerMeta_AdditionalLibp2PTraceIdentifyData) GetPeer() *ServerMeta_Peer { if x != nil { - return x.MissBytes + return x.Peer } return nil } -var File_pkg_proto_xatu_event_ingester_proto protoreflect.FileDescriptor +type ServerMeta_AdditionalNodeRecordConsensusData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ - 0x0a, 0x23, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x78, 0x61, 0x74, 0x75, - 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x72, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x78, 0x61, 0x74, 0x75, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x70, 0x6b, - 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x61, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x1b, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, - 0x76, 0x31, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x70, - 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x70, 0x6b, - 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, - 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, + Geo *ServerMeta_Geo `protobuf:"bytes,1,opt,name=geo,proto3" json:"geo,omitempty"` +} + +func (x *ServerMeta_AdditionalNodeRecordConsensusData) Reset() { + *x = ServerMeta_AdditionalNodeRecordConsensusData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[145] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServerMeta_AdditionalNodeRecordConsensusData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerMeta_AdditionalNodeRecordConsensusData) ProtoMessage() {} + +func (x *ServerMeta_AdditionalNodeRecordConsensusData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[145] + 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 ServerMeta_AdditionalNodeRecordConsensusData.ProtoReflect.Descriptor instead. +func (*ServerMeta_AdditionalNodeRecordConsensusData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 9} +} + +func (x *ServerMeta_AdditionalNodeRecordConsensusData) GetGeo() *ServerMeta_Geo { + if x != nil { + return x.Geo + } + return nil +} + +type ServerMeta_AdditionalNodeRecordExecutionData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Geo *ServerMeta_Geo `protobuf:"bytes,1,opt,name=geo,proto3" json:"geo,omitempty"` +} + +func (x *ServerMeta_AdditionalNodeRecordExecutionData) Reset() { + *x = ServerMeta_AdditionalNodeRecordExecutionData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[146] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServerMeta_AdditionalNodeRecordExecutionData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerMeta_AdditionalNodeRecordExecutionData) ProtoMessage() {} + +func (x *ServerMeta_AdditionalNodeRecordExecutionData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[146] + 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 ServerMeta_AdditionalNodeRecordExecutionData.ProtoReflect.Descriptor instead. +func (*ServerMeta_AdditionalNodeRecordExecutionData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{23, 10} +} + +func (x *ServerMeta_AdditionalNodeRecordExecutionData) GetGeo() *ServerMeta_Geo { + if x != nil { + return x.Geo + } + return nil +} + +// StateReads contains state read statistics. +type ExecutionBlockMetrics_StateReads struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Accounts is the number of account reads. + Accounts *wrapperspb.UInt64Value `protobuf:"bytes,1,opt,name=accounts,proto3" json:"accounts,omitempty"` + // StorageSlots is the number of storage slot reads. + StorageSlots *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=storage_slots,proto3" json:"storage_slots,omitempty"` + // Code is the number of code reads. + Code *wrapperspb.UInt64Value `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"` + // CodeBytes is the total bytes of code read. + CodeBytes *wrapperspb.UInt64Value `protobuf:"bytes,4,opt,name=code_bytes,proto3" json:"code_bytes,omitempty"` +} + +func (x *ExecutionBlockMetrics_StateReads) Reset() { + *x = ExecutionBlockMetrics_StateReads{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[147] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutionBlockMetrics_StateReads) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutionBlockMetrics_StateReads) ProtoMessage() {} + +func (x *ExecutionBlockMetrics_StateReads) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[147] + 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 ExecutionBlockMetrics_StateReads.ProtoReflect.Descriptor instead. +func (*ExecutionBlockMetrics_StateReads) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{26, 0} +} + +func (x *ExecutionBlockMetrics_StateReads) GetAccounts() *wrapperspb.UInt64Value { + if x != nil { + return x.Accounts + } + return nil +} + +func (x *ExecutionBlockMetrics_StateReads) GetStorageSlots() *wrapperspb.UInt64Value { + if x != nil { + return x.StorageSlots + } + return nil +} + +func (x *ExecutionBlockMetrics_StateReads) GetCode() *wrapperspb.UInt64Value { + if x != nil { + return x.Code + } + return nil +} + +func (x *ExecutionBlockMetrics_StateReads) GetCodeBytes() *wrapperspb.UInt64Value { + if x != nil { + return x.CodeBytes + } + return nil +} + +// StateWrites contains state write statistics. +type ExecutionBlockMetrics_StateWrites struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Accounts is the number of account writes. + Accounts *wrapperspb.UInt64Value `protobuf:"bytes,1,opt,name=accounts,proto3" json:"accounts,omitempty"` + // AccountsDeleted is the number of accounts deleted. + AccountsDeleted *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=accounts_deleted,proto3" json:"accounts_deleted,omitempty"` + // StorageSlots is the number of storage slot writes. + StorageSlots *wrapperspb.UInt64Value `protobuf:"bytes,3,opt,name=storage_slots,proto3" json:"storage_slots,omitempty"` + // StorageSlotsDeleted is the number of storage slots deleted. + StorageSlotsDeleted *wrapperspb.UInt64Value `protobuf:"bytes,4,opt,name=storage_slots_deleted,proto3" json:"storage_slots_deleted,omitempty"` + // Code is the number of code writes. + Code *wrapperspb.UInt64Value `protobuf:"bytes,5,opt,name=code,proto3" json:"code,omitempty"` + // CodeBytes is the total bytes of code written. + CodeBytes *wrapperspb.UInt64Value `protobuf:"bytes,6,opt,name=code_bytes,proto3" json:"code_bytes,omitempty"` +} + +func (x *ExecutionBlockMetrics_StateWrites) Reset() { + *x = ExecutionBlockMetrics_StateWrites{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[148] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutionBlockMetrics_StateWrites) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutionBlockMetrics_StateWrites) ProtoMessage() {} + +func (x *ExecutionBlockMetrics_StateWrites) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[148] + 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 ExecutionBlockMetrics_StateWrites.ProtoReflect.Descriptor instead. +func (*ExecutionBlockMetrics_StateWrites) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{26, 1} +} + +func (x *ExecutionBlockMetrics_StateWrites) GetAccounts() *wrapperspb.UInt64Value { + if x != nil { + return x.Accounts + } + return nil +} + +func (x *ExecutionBlockMetrics_StateWrites) GetAccountsDeleted() *wrapperspb.UInt64Value { + if x != nil { + return x.AccountsDeleted + } + return nil +} + +func (x *ExecutionBlockMetrics_StateWrites) GetStorageSlots() *wrapperspb.UInt64Value { + if x != nil { + return x.StorageSlots + } + return nil +} + +func (x *ExecutionBlockMetrics_StateWrites) GetStorageSlotsDeleted() *wrapperspb.UInt64Value { + if x != nil { + return x.StorageSlotsDeleted + } + return nil +} + +func (x *ExecutionBlockMetrics_StateWrites) GetCode() *wrapperspb.UInt64Value { + if x != nil { + return x.Code + } + return nil +} + +func (x *ExecutionBlockMetrics_StateWrites) GetCodeBytes() *wrapperspb.UInt64Value { + if x != nil { + return x.CodeBytes + } + return nil +} + +// CacheEntry contains cache hit/miss statistics. +type ExecutionBlockMetrics_CacheEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Hits is the number of cache hits. + Hits *wrapperspb.Int64Value `protobuf:"bytes,1,opt,name=hits,proto3" json:"hits,omitempty"` + // Misses is the number of cache misses. + Misses *wrapperspb.Int64Value `protobuf:"bytes,2,opt,name=misses,proto3" json:"misses,omitempty"` + // HitRate is the cache hit rate as a percentage. + HitRate *wrapperspb.DoubleValue `protobuf:"bytes,3,opt,name=hit_rate,proto3" json:"hit_rate,omitempty"` +} + +func (x *ExecutionBlockMetrics_CacheEntry) Reset() { + *x = ExecutionBlockMetrics_CacheEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[149] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutionBlockMetrics_CacheEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutionBlockMetrics_CacheEntry) ProtoMessage() {} + +func (x *ExecutionBlockMetrics_CacheEntry) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[149] + 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 ExecutionBlockMetrics_CacheEntry.ProtoReflect.Descriptor instead. +func (*ExecutionBlockMetrics_CacheEntry) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{26, 2} +} + +func (x *ExecutionBlockMetrics_CacheEntry) GetHits() *wrapperspb.Int64Value { + if x != nil { + return x.Hits + } + return nil +} + +func (x *ExecutionBlockMetrics_CacheEntry) GetMisses() *wrapperspb.Int64Value { + if x != nil { + return x.Misses + } + return nil +} + +func (x *ExecutionBlockMetrics_CacheEntry) GetHitRate() *wrapperspb.DoubleValue { + if x != nil { + return x.HitRate + } + return nil +} + +// CodeCacheEntry extends CacheEntry with byte-level statistics. +type ExecutionBlockMetrics_CodeCacheEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Hits is the number of cache hits. + Hits *wrapperspb.Int64Value `protobuf:"bytes,1,opt,name=hits,proto3" json:"hits,omitempty"` + // Misses is the number of cache misses. + Misses *wrapperspb.Int64Value `protobuf:"bytes,2,opt,name=misses,proto3" json:"misses,omitempty"` + // HitRate is the cache hit rate as a percentage. + HitRate *wrapperspb.DoubleValue `protobuf:"bytes,3,opt,name=hit_rate,proto3" json:"hit_rate,omitempty"` + // HitBytes is the total bytes of cache hits. + HitBytes *wrapperspb.Int64Value `protobuf:"bytes,4,opt,name=hit_bytes,proto3" json:"hit_bytes,omitempty"` + // MissBytes is the total bytes of cache misses. + MissBytes *wrapperspb.Int64Value `protobuf:"bytes,5,opt,name=miss_bytes,proto3" json:"miss_bytes,omitempty"` +} + +func (x *ExecutionBlockMetrics_CodeCacheEntry) Reset() { + *x = ExecutionBlockMetrics_CodeCacheEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[150] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutionBlockMetrics_CodeCacheEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutionBlockMetrics_CodeCacheEntry) ProtoMessage() {} + +func (x *ExecutionBlockMetrics_CodeCacheEntry) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[150] + 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 ExecutionBlockMetrics_CodeCacheEntry.ProtoReflect.Descriptor instead. +func (*ExecutionBlockMetrics_CodeCacheEntry) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{26, 3} +} + +func (x *ExecutionBlockMetrics_CodeCacheEntry) GetHits() *wrapperspb.Int64Value { + if x != nil { + return x.Hits + } + return nil +} + +func (x *ExecutionBlockMetrics_CodeCacheEntry) GetMisses() *wrapperspb.Int64Value { + if x != nil { + return x.Misses + } + return nil +} + +func (x *ExecutionBlockMetrics_CodeCacheEntry) GetHitRate() *wrapperspb.DoubleValue { + if x != nil { + return x.HitRate + } + return nil +} + +func (x *ExecutionBlockMetrics_CodeCacheEntry) GetHitBytes() *wrapperspb.Int64Value { + if x != nil { + return x.HitBytes + } + return nil +} + +func (x *ExecutionBlockMetrics_CodeCacheEntry) GetMissBytes() *wrapperspb.Int64Value { + if x != nil { + return x.MissBytes + } + return nil +} + +var File_pkg_proto_xatu_event_ingester_proto protoreflect.FileDescriptor + +var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ + 0x0a, 0x23, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x78, 0x61, 0x74, 0x75, + 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x72, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x78, 0x61, 0x74, 0x75, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x70, 0x6b, + 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x61, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x1b, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, + 0x76, 0x31, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x70, + 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x70, 0x6b, + 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, + 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x75, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x32, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x70, 0x6b, @@ -13485,7 +14438,7 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22, 0x84, 0xf4, 0x01, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22, 0x8a, 0x99, 0x02, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, @@ -14196,7 +15149,113 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x43, 0x43, - 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x12, 0x32, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75, + 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x12, 0x91, 0x01, 0x0a, 0x1f, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x60, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, + 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x97, 0x01, 0x0a, + 0x21, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x61, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x53, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, + 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x9c, 0x01, 0x0a, 0x23, 0x65, 0x74, 0x68, 0x5f, 0x76, + 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x69, 0x64, 0x18, 0x62, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x69, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, + 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, + 0x44, 0x5f, 0x42, 0x49, 0x44, 0x12, 0x9a, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, + 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, + 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x63, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x44, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x50, 0x52, + 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, + 0x45, 0x53, 0x12, 0xa8, 0x01, 0x0a, 0x27, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x64, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, + 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0xad, 0x01, + 0x0a, 0x29, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x69, 0x64, 0x18, 0x65, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x42, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x69, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x49, 0x44, 0x12, 0xbb, 0x01, + 0x0a, 0x31, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, + 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x65, 0x6e, 0x76, 0x65, 0x6c, + 0x6f, 0x70, 0x65, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, + 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, + 0x70, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x31, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, + 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, + 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x56, 0x45, 0x4c, 0x4f, 0x50, 0x45, 0x12, 0xac, 0x01, 0x0a, 0x2c, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, + 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x69, 0x64, 0x18, 0x67, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, + 0x53, 0x75, 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x42, 0x69, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2c, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, + 0x50, 0x53, 0x55, 0x42, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, + 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x49, 0x44, 0x12, 0xbe, 0x01, 0x0a, 0x32, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, + 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x61, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, + 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x41, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x32, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, + 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0xaa, 0x01, 0x0a, 0x2b, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, + 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, + 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x69, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x46, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, + 0x75, 0x62, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2b, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, + 0x53, 0x55, 0x42, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x45, + 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x12, 0x32, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, @@ -14729,99 +15788,229 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0xb7, 0x01, 0x0a, 0x28, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x12, 0x3f, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x61, 0x73, 0x68, 0x1a, 0x8b, 0x02, 0x0a, 0x17, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, - 0x66, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, - 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, - 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, - 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x12, 0x4e, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x1a, 0xdc, 0x02, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, - 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, - 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, - 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, - 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x08, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x1a, 0xa4, 0x01, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, - 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, - 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, - 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, - 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, - 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xaa, 0x01, 0x0a, 0x2a, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, - 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, - 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, - 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x99, 0x02, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, + 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0xb7, 0x01, 0x0a, 0x28, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x12, 0x3f, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, + 0x61, 0x73, 0x68, 0x1a, 0xa9, 0x01, 0x0a, 0x29, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, + 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, + 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, + 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, + 0xab, 0x01, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, + 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, + 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xac, 0x01, + 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, + 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x69, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, + 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, + 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xac, 0x01, 0x0a, + 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x50, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, - 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x12, 0x26, 0x0a, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x46, 0x0a, 0x0f, 0x64, 0x61, 0x74, 0x61, - 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, + 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x5f, 0x0a, 0x30, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x60, 0x0a, 0x31, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x69, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x9a, + 0x04, 0x0a, 0x3a, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, + 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, + 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, + 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, + 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, + 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, + 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, + 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, + 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x1a, 0xa9, 0x04, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, + 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x95, 0x04, 0x0a, 0x35, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x69, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, + 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, + 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, + 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x5f, 0x69, 0x64, 0x1a, 0x9b, 0x04, 0x0a, 0x3b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, + 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, + 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, + 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, + 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, + 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, + 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, + 0x64, 0x1a, 0x95, 0x04, 0x0a, 0x35, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, + 0x70, 0x53, 0x75, 0x62, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, + 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, + 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, + 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, + 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, + 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x8b, 0x02, 0x0a, 0x17, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x66, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1f, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x12, 0x4e, 0x0a, + 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x38, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0xdc, 0x02, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, @@ -14831,347 +16020,311 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, - 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, - 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, - 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, - 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x06, - 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x73, 0x75, 0x62, 0x6e, - 0x65, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x1a, 0x84, 0x01, 0x0a, - 0x1f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, - 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, - 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x5f, 0x69, 0x64, 0x1a, 0x97, 0x03, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, - 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x4f, 0x0a, 0x06, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, - 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x1a, 0x5f, 0x0a, - 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, - 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x62, - 0x0a, 0x23, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, - 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, - 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x76, 0x52, - 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x64, - 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, + 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x12, 0x44, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x08, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x1a, 0xa4, 0x01, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, + 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, + 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xaa, 0x01, + 0x0a, 0x2a, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, + 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, + 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x99, 0x02, 0x0a, 0x24, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, + 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, + 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x46, + 0x0a, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0xa9, 0x04, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, + 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, + 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, + 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, + 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, + 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, + 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x04, 0x70, + 0x65, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, + 0x65, 0x72, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, + 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x1a, 0x84, 0x01, 0x0a, 0x1f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, + 0x74, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x97, 0x03, 0x0a, 0x33, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, + 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, + 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, + 0x74, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x41, 0x64, 0x64, 0x50, + 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x72, 0x6f, - 0x70, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, - 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x48, 0x61, 0x76, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, - 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x57, 0x61, 0x6e, 0x74, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, - 0x6f, 0x0a, 0x30, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, - 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x44, 0x6f, 0x6e, 0x74, 0x57, 0x61, 0x6e, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, - 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61, 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, - 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, - 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, + 0x64, 0x61, 0x74, 0x61, 0x1a, 0x62, 0x0a, 0x23, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, + 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, + 0x65, 0x52, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5c, 0x0a, 0x1d, 0x41, 0x64, + 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, + 0x61, 0x63, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, + 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x49, 0x48, 0x61, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, - 0x65, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x47, 0x72, 0x61, 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, - 0x72, 0x75, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, + 0x57, 0x61, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x68, 0x0a, 0x29, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, - 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, - 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, - 0x65, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, - 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6f, 0x0a, 0x30, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, + 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x44, 0x6f, 0x6e, + 0x74, 0x57, 0x61, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x61, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x64, 0x0a, 0x25, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, - 0x6a, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, - 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, - 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, - 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, + 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61, + 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x1a, 0x64, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x60, 0x0a, 0x21, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, + 0x61, 0x74, 0x61, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, + 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x1a, 0x5c, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, + 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, + 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, + 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, + 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, + 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x72, 0x61, 0x66, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, 0x1e, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xa7, 0x02, 0x0a, 0x32, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x70, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, - 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, - 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, - 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, - 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, - 0x43, 0x4d, 0x65, 0x74, 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, - 0x74, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x8d, 0x04, 0x0a, 0x2d, 0x41, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x68, 0x0a, 0x29, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, - 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, - 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, - 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, - 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, - 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, - 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, - 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x60, 0x0a, 0x39, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x60, 0x0a, 0x39, + 0x72, 0x61, 0x63, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x65, + 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, + 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, + 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x65, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, + 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x61, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xa9, - 0x06, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, - 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, - 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x62, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, - 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x62, 0x0a, 0x06, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, + 0x64, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6a, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x79, + 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x64, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, - 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, - 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, - 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, - 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0xdd, 0x04, 0x0a, 0x33, 0x41, + 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, + 0x60, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x1a, 0xa7, 0x02, 0x0a, 0x32, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x70, 0x63, 0x44, 0x61, + 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x50, + 0x72, 0x6f, 0x62, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, + 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, + 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x6b, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x41, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x44, 0x61, + 0x72, 0x61, 0x63, 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, + 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, + 0x65, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x1a, 0x8d, 0x04, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, + 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, @@ -15187,62 +16340,125 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x48, 0x0a, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x8d, 0x04, 0x0a, 0x2d, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x6c, 0x6f, - 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, - 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, - 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, - 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, - 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, - 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, - 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, - 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x93, 0x04, 0x0a, 0x33, 0x41, + 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x1a, 0x60, 0x0a, 0x39, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, + 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, + 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x1a, 0x60, 0x0a, 0x39, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, + 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xa9, 0x06, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, + 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x62, 0x0a, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x44, 0x61, 0x74, - 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, + 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x12, 0x62, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x4a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, + 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, + 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, 0x70, + 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, 0x61, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, + 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, + 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, + 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x1a, 0xdd, 0x04, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, + 0x53, 0x75, 0x62, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x64, 0x50, + 0x72, 0x6f, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, + 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, + 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, + 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, + 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x1a, 0x8d, 0x04, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, + 0x53, 0x75, 0x62, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, @@ -15273,1394 +16489,1428 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, - 0x1a, 0x44, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, - 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, - 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xc2, 0x03, 0x0a, 0x34, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x69, 0x64, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x52, - 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x73, - 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x34, 0x0a, - 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, - 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, - 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, - 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, - 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, - 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x12, 0x54, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, - 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, - 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0xb4, 0x03, 0x0a, 0x26, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, - 0x61, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, - 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, - 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x72, 0x65, 0x6c, - 0x61, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, - 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, - 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, - 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x54, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x52, - 0x0a, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, - 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x1a, 0x96, 0x06, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x74, 0x68, 0x56, 0x33, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x1a, 0x93, 0x04, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, + 0x53, 0x75, 0x62, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x12, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x12, 0x6e, 0x0a, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x23, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x12, 0x54, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, + 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, + 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, - 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4e, 0x0a, 0x13, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, - 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x1a, 0xd7, 0x02, 0x0a, 0x2b, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, - 0x61, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x05, 0x72, - 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, - 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, - 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, - 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x44, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xc2, 0x03, 0x0a, + 0x34, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x76, 0x52, 0x65, + 0x6c, 0x61, 0x79, 0x42, 0x69, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, + 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, + 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, + 0x79, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, + 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x54, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, + 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x1a, 0xb4, 0x03, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, + 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x05, + 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x52, 0x65, 0x6c, 0x61, + 0x79, 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, + 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, + 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, + 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, + 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, + 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x54, + 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, + 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73, + 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0x96, 0x06, 0x0a, 0x21, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x33, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, + 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, - 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, - 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, - 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x46, 0x0a, - 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0xb4, 0x01, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, - 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x0f, 0x66, - 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x4c, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x58, 0x0a, + 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x6e, 0x0a, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x28, 0x0a, + 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, + 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x4e, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, + 0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x1a, 0xd7, 0x02, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4d, 0x65, 0x76, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, + 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x20, 0x0a, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, + 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, + 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x56, 0x32, 0x52, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x29, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x6c, 0x6f, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, - 0x6f, 0x74, 0x56, 0x32, 0x52, 0x08, 0x68, 0x65, 0x61, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x2c, - 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, + 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, + 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x12, 0x46, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0xb4, 0x01, 0x0a, 0x21, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x36, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x29, 0x0a, 0x09, 0x68, 0x65, 0x61, + 0x64, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x08, 0x68, 0x65, 0x61, 0x64, + 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x2c, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x09, 0x68, 0x65, 0x61, 0x64, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x1a, 0x73, 0x0a, 0x2a, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, + 0x50, 0x49, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, + 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x71, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, - 0x32, 0x52, 0x09, 0x68, 0x65, 0x61, 0x64, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x73, 0x0a, 0x2a, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, - 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x65, 0x77, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, - 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x1a, 0x71, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, - 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, - 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, - 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, - 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x66, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, - 0x62, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x42, 0x10, 0x0a, 0x0e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0x89, - 0x10, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x2c, 0x0a, - 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x6d, 0x0a, 0x16, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, - 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, - 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, - 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6d, 0x0a, 0x16, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, - 0x45, 0x43, 0x54, 0x45, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, + 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, + 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x66, 0x0a, 0x1d, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x44, 0x61, 0x74, 0x61, 0x22, 0x89, 0x10, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x12, 0x6d, 0x0a, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, + 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x12, 0x6d, 0x0a, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, + 0x12, 0x76, 0x0a, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x19, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, + 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x6a, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, + 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, + 0x53, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, + 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4e, + 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, + 0x4e, 0x53, 0x55, 0x53, 0x12, 0x6a, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, + 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, + 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, + 0x12, 0x8a, 0x01, 0x0a, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, + 0x54, 0x42, 0x45, 0x41, 0x54, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x76, 0x0a, 0x19, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, - 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, - 0x45, 0x44, 0x12, 0x6a, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, - 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, - 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, - 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, - 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x12, 0x6a, - 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, - 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, - 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x8a, 0x01, 0x0a, 0x20, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, - 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x18, - 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, - 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, - 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x12, 0x6a, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, - 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, - 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, - 0x49, 0x46, 0x59, 0x1a, 0x53, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x12, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0xb7, 0x02, 0x0a, 0x03, 0x47, 0x65, 0x6f, - 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x21, - 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, - 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6e, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, - 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x61, 0x74, 0x69, - 0x74, 0x75, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, - 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, - 0x64, 0x65, 0x12, 0x38, 0x0a, 0x16, 0x41, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x18, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x5f, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1c, - 0x41, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x1e, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x5f, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x1a, 0x6a, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x50, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x26, 0x0a, 0x03, - 0x67, 0x65, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, + 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, + 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x20, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, + 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x12, 0x6a, 0x0a, + 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, + 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x61, + 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x1a, 0x53, 0x0a, 0x05, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x12, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0xb7, + 0x02, 0x0a, 0x03, 0x47, 0x65, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x69, + 0x6e, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, + 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, + 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x38, 0x0a, 0x16, 0x41, 0x75, 0x74, 0x6f, + 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f, + 0x6d, 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1c, 0x41, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f, + 0x6d, 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x6a, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x50, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x70, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, + 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x12, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x75, 0x73, 0x65, 0x72, 0x1a, 0x2e, 0x0a, 0x04, 0x50, 0x65, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x03, + 0x67, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, - 0x03, 0x67, 0x65, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x73, - 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x1a, 0x2e, - 0x0a, 0x04, 0x50, 0x65, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x1a, 0x4f, - 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, - 0x4f, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, - 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, - 0x1a, 0x52, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, - 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, + 0x03, 0x67, 0x65, 0x6f, 0x1a, 0x4f, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, + 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4f, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, + 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, + 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x52, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, + 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x58, 0x0a, 0x2b, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, + 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, + 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, - 0x70, 0x65, 0x65, 0x72, 0x1a, 0x58, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x79, 0x6e, - 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4e, - 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, - 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4b, - 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, - 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x1a, 0x4b, 0x0a, 0x21, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x42, 0x10, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0x5a, 0x0a, 0x04, 0x4d, 0x65, - 0x74, 0x61, 0x12, 0x28, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x06, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x06, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0xf3, 0x20, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x12, 0x24, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4e, 0x61, 0x6d, 0x65, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x22, 0xf9, 0x1f, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x45, 0x41, + 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4e, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, + 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4b, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, + 0x65, 0x6e, 0x73, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, + 0x6f, 0x1a, 0x4b, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, + 0x6f, 0x64, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x42, 0x10, + 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, + 0x22, 0x5a, 0x0a, 0x04, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x61, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0xf3, 0x20, 0x0a, + 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xf9, 0x1f, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x24, 0x0a, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, + 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, - 0x22, 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, - 0x4b, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, + 0x47, 0x10, 0x02, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, - 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x10, 0x02, 0x12, 0x31, 0x0a, - 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, - 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x03, - 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, - 0x44, 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, - 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x10, 0x05, - 0x12, 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, - 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x33, 0x0a, 0x2f, 0x42, 0x45, + 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, + 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, + 0x45, 0x58, 0x49, 0x54, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, + 0x12, 0x33, 0x0a, 0x2f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, + 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, + 0x4f, 0x4f, 0x46, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, + 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x12, 0x22, + 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x10, 0x09, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, + 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x10, 0x0a, 0x12, 0x2d, 0x0a, 0x29, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, + 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, + 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x10, 0x07, 0x12, - 0x17, 0x0a, 0x13, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x09, 0x12, 0x27, 0x0a, 0x23, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, + 0x10, 0x0c, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, + 0x52, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, + 0x54, 0x41, 0x10, 0x0d, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x10, 0x0e, 0x12, 0x2b, 0x0a, 0x27, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, + 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x10, 0x0f, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, + 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x56, 0x32, 0x10, 0x10, 0x12, 0x24, + 0x0a, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x5f, + 0x56, 0x32, 0x10, 0x11, 0x12, 0x2e, 0x0a, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, + 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x5f, + 0x56, 0x32, 0x10, 0x12, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, + 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x10, + 0x13, 0x12, 0x36, 0x0a, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, + 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, + 0x52, 0x4f, 0x4f, 0x46, 0x5f, 0x56, 0x32, 0x10, 0x14, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x45, 0x4d, + 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x56, 0x32, 0x10, 0x15, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x10, 0x16, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, - 0x49, 0x43, 0x45, 0x10, 0x0a, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, - 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, - 0x52, 0x47, 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x10, 0x0c, 0x12, 0x30, 0x0a, 0x2c, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x31, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x45, - 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x0d, 0x12, 0x25, - 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x5f, 0x56, 0x32, 0x10, 0x0e, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, - 0x10, 0x0f, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, - 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, - 0x49, 0x4e, 0x54, 0x5f, 0x56, 0x32, 0x10, 0x10, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x56, 0x32, 0x10, 0x11, 0x12, 0x2e, - 0x0a, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, - 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x5f, 0x56, 0x32, 0x10, 0x12, 0x12, 0x2b, - 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, - 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x10, 0x13, 0x12, 0x36, 0x0a, 0x32, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x5f, 0x56, - 0x32, 0x10, 0x14, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, - 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x10, 0x15, 0x12, - 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, - 0x4b, 0x5f, 0x56, 0x32, 0x10, 0x16, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, - 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x56, 0x32, - 0x10, 0x17, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, - 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, - 0x56, 0x32, 0x10, 0x18, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, 0x52, 0x5f, - 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x19, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, + 0x49, 0x43, 0x45, 0x5f, 0x56, 0x32, 0x10, 0x17, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, + 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, + 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x10, 0x18, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, - 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x1a, - 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, + 0x45, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x19, + 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, - 0x54, 0x10, 0x1b, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x10, 0x1c, 0x12, - 0x3a, 0x0a, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, - 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x1d, 0x12, 0x38, 0x0a, 0x34, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, - 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, - 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x10, 0x1e, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, + 0x48, 0x49, 0x4e, 0x47, 0x10, 0x1a, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, + 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x10, 0x1b, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, + 0x53, 0x49, 0x54, 0x10, 0x1c, 0x12, 0x3a, 0x0a, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, - 0x41, 0x4c, 0x10, 0x1f, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, - 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x20, 0x12, - 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, - 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x22, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x23, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, - 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x10, 0x24, 0x12, 0x39, 0x0a, 0x35, 0x42, + 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, + 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, + 0x1d, 0x12, 0x38, 0x0a, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, + 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x1e, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, - 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, - 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x25, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, - 0x10, 0x26, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, - 0x27, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x28, 0x12, 0x1c, 0x0a, 0x18, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, - 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x29, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, - 0x52, 0x50, 0x43, 0x10, 0x2a, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2b, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, + 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, 0x4c, 0x10, 0x1f, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, + 0x43, 0x41, 0x52, 0x10, 0x20, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x22, + 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, + 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x23, 0x12, 0x23, 0x0a, 0x1f, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, + 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x10, + 0x24, 0x12, 0x39, 0x0a, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, + 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x25, 0x12, 0x1a, 0x0a, 0x16, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x26, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x49, 0x42, 0x50, + 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, + 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x27, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, + 0x10, 0x28, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x29, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2c, 0x12, 0x15, 0x0a, 0x11, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, - 0x10, 0x2d, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x2e, 0x12, 0x20, 0x0a, 0x1c, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, - 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x10, 0x2f, 0x12, 0x1e, - 0x0a, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, - 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x30, 0x12, 0x27, - 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, - 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x31, 0x12, 0x2d, 0x0a, 0x29, 0x4c, 0x49, 0x42, 0x50, 0x32, - 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, - 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x32, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, - 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x33, 0x12, - 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, - 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x10, 0x34, 0x12, 0x30, 0x0a, 0x2c, 0x4d, 0x45, 0x56, 0x5f, - 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x49, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, - 0x42, 0x55, 0x49, 0x4c, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x55, - 0x42, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x35, 0x12, 0x28, 0x0a, 0x24, 0x4d, 0x45, - 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, - 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, - 0x45, 0x44, 0x10, 0x36, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x33, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, - 0x54, 0x4f, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x37, 0x12, 0x24, 0x0a, 0x20, 0x4d, - 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, - 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, - 0x38, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x10, 0x39, 0x12, 0x16, 0x0a, 0x12, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, - 0x56, 0x45, 0x10, 0x3a, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x10, 0x3b, 0x12, 0x16, 0x0a, 0x12, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x55, - 0x4e, 0x45, 0x10, 0x3c, 0x12, 0x22, 0x0a, 0x1e, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4d, - 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x3d, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x42, 0x50, - 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, - 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x3e, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, - 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x3f, 0x12, 0x1f, 0x0a, 0x1b, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4a, - 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x40, 0x12, 0x27, 0x0a, - 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, - 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, - 0x48, 0x41, 0x56, 0x45, 0x10, 0x41, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, - 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x57, 0x41, 0x4e, 0x54, 0x10, 0x42, 0x12, - 0x2b, 0x0a, 0x27, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, - 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, - 0x5f, 0x49, 0x44, 0x4f, 0x4e, 0x54, 0x57, 0x41, 0x4e, 0x54, 0x10, 0x43, 0x12, 0x27, 0x0a, 0x23, + 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2a, 0x12, 0x19, 0x0a, 0x15, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, + 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2b, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, 0x10, + 0x2c, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x10, 0x2d, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x49, 0x42, 0x50, + 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x10, 0x2e, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, + 0x54, 0x41, 0x10, 0x2f, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x10, 0x30, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x31, 0x12, 0x2d, 0x0a, + 0x29, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, + 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x32, 0x12, 0x27, 0x0a, 0x23, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, + 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, + 0x43, 0x41, 0x52, 0x10, 0x33, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x10, 0x34, 0x12, 0x30, + 0x0a, 0x2c, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x49, 0x44, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x35, + 0x12, 0x28, 0x0a, 0x24, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x50, 0x52, + 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, + 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x36, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x33, 0x5f, + 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, + 0x37, 0x12, 0x24, 0x0a, 0x20, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x56, + 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x38, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, + 0x10, 0x39, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0x3a, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, + 0x10, 0x3b, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x10, 0x3c, 0x12, 0x22, 0x0a, 0x1e, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, + 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x3d, 0x12, 0x20, + 0x0a, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, + 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x3e, + 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x10, 0x3f, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, + 0x45, 0x10, 0x40, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, + 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x48, 0x41, 0x56, 0x45, 0x10, 0x41, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, - 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x47, 0x52, - 0x41, 0x46, 0x54, 0x10, 0x44, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x57, + 0x41, 0x4e, 0x54, 0x10, 0x42, 0x12, 0x2b, 0x0a, 0x27, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, - 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x10, 0x45, 0x12, 0x26, - 0x0a, 0x22, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, - 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, - 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x46, 0x12, 0x21, 0x0a, 0x1d, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, - 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x47, 0x12, 0x19, 0x0a, 0x15, 0x4e, 0x4f, 0x44, - 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, - 0x55, 0x53, 0x10, 0x48, 0x12, 0x19, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, - 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x49, 0x12, - 0x2e, 0x0a, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, - 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, - 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x10, 0x4a, 0x12, - 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, - 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, - 0x4b, 0x12, 0x2e, 0x0a, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x44, 0x41, 0x54, 0x41, - 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, - 0x4c, 0x12, 0x24, 0x0a, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, - 0x54, 0x42, 0x45, 0x41, 0x54, 0x10, 0x4d, 0x12, 0x2e, 0x0a, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, - 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, - 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x44, 0x59, 0x5f, - 0x50, 0x52, 0x4f, 0x42, 0x45, 0x10, 0x4e, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x58, 0x45, 0x43, 0x55, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, - 0x4f, 0x12, 0x24, 0x0a, 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, - 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, - 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x50, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x4f, 0x4e, 0x53, 0x45, + 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x44, 0x4f, 0x4e, 0x54, 0x57, 0x41, 0x4e, 0x54, + 0x10, 0x43, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, + 0x52, 0x4f, 0x4c, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x10, 0x44, 0x12, 0x27, 0x0a, 0x23, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, + 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x55, + 0x4e, 0x45, 0x10, 0x45, 0x12, 0x26, 0x0a, 0x22, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x53, 0x55, + 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x46, 0x12, 0x21, 0x0a, 0x1d, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, + 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x47, 0x12, + 0x19, 0x0a, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, + 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x10, 0x48, 0x12, 0x19, 0x0a, 0x15, 0x4e, 0x4f, + 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, + 0x49, 0x4f, 0x4e, 0x10, 0x49, 0x12, 0x2e, 0x0a, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, + 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, + 0x4f, 0x4f, 0x46, 0x10, 0x4a, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, + 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x4b, 0x12, 0x2e, 0x0a, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, + 0x42, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, + 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x4c, 0x12, 0x24, 0x0a, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, + 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x10, 0x4d, 0x12, 0x2e, 0x0a, + 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, + 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x43, 0x55, + 0x53, 0x54, 0x4f, 0x44, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x10, 0x4e, 0x12, 0x18, 0x0a, + 0x14, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x4f, 0x12, 0x24, 0x0a, 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x10, 0x51, 0x12, 0x20, 0x0a, 0x1c, 0x45, - 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, - 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x52, 0x12, 0x1e, 0x0a, - 0x1a, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, - 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x10, 0x53, 0x12, 0x21, 0x0a, - 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x10, 0x54, - 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, - 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x10, 0x55, 0x12, 0x31, 0x0a, - 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, - 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, 0x56, - 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x53, 0x10, 0x57, 0x12, 0x19, 0x0a, - 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, - 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x10, 0x58, 0x12, 0x2e, 0x0a, 0x2a, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, - 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x59, 0x12, 0x2e, 0x0a, 0x2a, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, - 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x5a, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, 0x54, 0x54, - 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x5b, 0x12, 0x32, 0x0a, 0x2e, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x49, 0x44, 0x10, 0x5c, 0x12, 0x31, - 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, - 0x53, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x10, - 0x5d, 0x12, 0x36, 0x0a, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, - 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x5e, 0x12, 0x38, 0x0a, 0x34, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, - 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x49, - 0x44, 0x10, 0x5f, 0x12, 0x35, 0x0a, 0x31, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x45, 0x58, - 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, - 0x45, 0x4e, 0x56, 0x45, 0x4c, 0x4f, 0x50, 0x45, 0x10, 0x60, 0x12, 0x30, 0x0a, 0x2c, 0x4c, 0x49, + 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x50, 0x12, 0x22, 0x0a, + 0x1e, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, + 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x10, + 0x51, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, + 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, + 0x44, 0x10, 0x52, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, + 0x53, 0x10, 0x53, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x42, 0x4c, 0x4f, 0x42, 0x10, 0x54, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, + 0x45, 0x10, 0x55, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, + 0x47, 0x41, 0x54, 0x45, 0x10, 0x56, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, + 0x53, 0x10, 0x57, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x10, 0x58, 0x12, 0x2e, + 0x0a, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x59, 0x12, 0x2e, + 0x0a, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x5a, 0x12, 0x30, + 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, + 0x41, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x5b, + 0x12, 0x32, 0x0a, 0x2e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x45, 0x58, 0x45, + 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, + 0x49, 0x44, 0x10, 0x5c, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, + 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x45, 0x52, + 0x45, 0x4e, 0x43, 0x45, 0x53, 0x10, 0x5d, 0x12, 0x36, 0x0a, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, + 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x5e, 0x12, + 0x38, 0x0a, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, + 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, + 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x49, 0x44, 0x10, 0x5f, 0x12, 0x35, 0x0a, 0x31, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, + 0x53, 0x55, 0x42, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, + 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x56, 0x45, 0x4c, 0x4f, 0x50, 0x45, 0x10, 0x60, + 0x12, 0x30, 0x0a, 0x2c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x49, 0x44, + 0x10, 0x61, 0x12, 0x36, 0x0a, 0x32, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x50, 0x41, 0x59, + 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x62, 0x12, 0x2f, 0x0a, 0x2b, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, - 0x50, 0x53, 0x55, 0x42, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, - 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x49, 0x44, 0x10, 0x61, 0x12, 0x36, 0x0a, 0x32, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, - 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, - 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, - 0x47, 0x45, 0x10, 0x62, 0x12, 0x2f, 0x0a, 0x2b, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x50, - 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, - 0x43, 0x45, 0x53, 0x10, 0x63, 0x22, 0x04, 0x08, 0x21, 0x10, 0x21, 0x2a, 0x1f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x50, 0x52, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4c, - 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x22, 0xf9, 0x10, 0x0a, - 0x15, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x40, - 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x50, 0x53, 0x55, 0x42, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x52, + 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x10, 0x63, 0x22, 0x04, 0x08, 0x21, 0x10, + 0x21, 0x2a, 0x1f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x50, 0x52, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x22, 0xf9, 0x10, 0x0a, 0x15, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x38, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, + 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, + 0x12, 0x38, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x78, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, 0x78, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, - 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, - 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6d, 0x73, 0x12, 0x3a, - 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, - 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x5f, 0x6d, 0x73, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x65, 0x72, - 0x5f, 0x73, 0x65, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, - 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x67, 0x61, 0x73, 0x5f, 0x70, - 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x12, 0x48, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x61, 0x64, 0x73, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x12, 0x4b, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x73, 0x52, - 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x4c, 0x0a, - 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x12, 0x4a, 0x0a, 0x0a, 0x63, 0x6f, 0x64, - 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x43, - 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, - 0x63, 0x61, 0x63, 0x68, 0x65, 0x1a, 0xfa, 0x01, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x61, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x42, - 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, - 0x74, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x08, 0x74, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x0c, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x1a, 0x99, 0x03, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x57, 0x72, 0x69, 0x74, - 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x48, 0x0a, 0x10, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x30, - 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x42, 0x0a, 0x0d, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x73, + 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6d, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x5f, 0x6d, 0x73, 0x12, 0x3a, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x6d, + 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x73, + 0x12, 0x38, 0x0a, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x67, + 0x61, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, + 0x6d, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x12, 0x48, 0x0a, 0x0b, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x64, 0x73, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x5f, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x73, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, + 0x61, 0x63, 0x68, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, + 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x61, 0x63, + 0x68, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x12, + 0x4a, 0x0a, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x1a, 0xfa, 0x01, 0x0a, 0x0a, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x1a, 0xac, - 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2f, 0x0a, - 0x04, 0x68, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, - 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x68, 0x69, 0x74, 0x73, 0x12, 0x33, - 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6d, 0x69, 0x73, - 0x73, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x08, 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x1a, 0xa8, 0x02, - 0x0a, 0x0e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x2f, 0x0a, 0x04, 0x68, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, + 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x68, 0x69, 0x74, - 0x73, 0x12, 0x33, 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6f, + 0x64, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x99, 0x03, 0x0a, 0x0b, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x12, 0x48, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x0d, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, + 0x12, 0x52, 0x0a, 0x15, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, + 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x1a, 0xac, 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x04, 0x68, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, - 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, - 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x12, 0x39, 0x0a, 0x09, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x09, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x6d, - 0x69, 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x69, - 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x22, 0x95, 0x54, 0x0a, 0x0e, 0x44, 0x65, 0x63, - 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1e, - 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x67, - 0x0a, 0x19, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, - 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x48, - 0x00, 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, - 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x5a, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, - 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x02, 0x18, - 0x01, 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x12, 0x6b, 0x0a, 0x19, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, - 0x65, 0x6f, 0x72, 0x67, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, - 0x12, 0x86, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, - 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x12, 0x57, 0x0a, 0x12, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x42, 0x02, 0x18, - 0x01, 0x48, 0x00, 0x52, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, - 0x41, 0x44, 0x12, 0x74, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, - 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, - 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, - 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, - 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x12, 0x8b, 0x01, 0x0a, 0x24, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, - 0x66, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, - 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x2f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, + 0x68, 0x69, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x68, 0x69, 0x74, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, + 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x68, 0x69, 0x74, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x1a, 0xa8, 0x02, 0x0a, 0x0e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x04, 0x68, 0x69, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x04, 0x68, 0x69, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, + 0x68, 0x69, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x68, 0x69, + 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x68, 0x69, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x69, 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x22, 0x95, + 0x54, 0x0a, 0x0e, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04, + 0x6d, 0x65, 0x74, 0x61, 0x12, 0x67, 0x0a, 0x19, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x5a, 0x0a, + 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x6b, 0x0a, 0x19, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, + 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x12, 0x86, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, + 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, + 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x12, + 0x57, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x5f, 0x68, 0x65, 0x61, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, + 0x65, 0x61, 0x64, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x12, 0x74, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, + 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, + 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x42, + 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, - 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, - 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x12, 0x36, 0x0a, 0x13, 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, - 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x13, 0x4d, 0x45, 0x4d, 0x50, 0x4f, - 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x5a, - 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x5e, 0x0a, 0x12, 0x65, 0x74, - 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, - 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x12, 0x6d, 0x0a, 0x18, 0x65, 0x74, - 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x29, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, - 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x12, 0x5d, 0x0a, 0x17, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x74, 0x65, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x65, 0x48, 0x00, 0x52, 0x22, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, - 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, 0x79, 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, - 0x76, 0x31, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, - 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, - 0x41, 0x54, 0x41, 0x12, 0x6b, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x76, 0x32, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x12, 0x8b, + 0x01, 0x0a, 0x24, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, + 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, + 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x2f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x12, 0x36, 0x0a, 0x13, + 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, + 0x13, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x5a, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x12, 0x5e, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, + 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, + 0x12, 0x6d, 0x0a, 0x18, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, + 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x42, 0x02, + 0x18, 0x01, 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, + 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x12, + 0x5d, 0x0a, 0x17, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x48, 0x00, 0x52, 0x22, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, 0x79, + 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, - 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x32, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x21, 0x42, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x56, + 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x12, 0x6b, 0x0a, 0x1c, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x32, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, - 0x12, 0x6f, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x5f, 0x76, 0x32, - 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, - 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, - 0x32, 0x12, 0x8a, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x32, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, - 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x56, 0x32, 0x12, 0x5b, - 0x0a, 0x15, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, - 0x68, 0x65, 0x61, 0x64, 0x5f, 0x76, 0x32, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, + 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x32, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, + 0x32, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x12, 0x6f, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, + 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x65, + 0x6f, 0x72, 0x67, 0x5f, 0x76, 0x32, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x48, 0x00, 0x52, 0x27, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, + 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, + 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x12, 0x8a, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, + 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x76, + 0x32, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x32, + 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, + 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, + 0x54, 0x5f, 0x56, 0x32, 0x12, 0x5b, 0x0a, 0x15, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x76, 0x32, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x56, 0x32, 0x48, 0x00, 0x52, + 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x56, + 0x32, 0x12, 0x78, 0x0a, 0x1f, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, + 0x74, 0x5f, 0x76, 0x32, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x56, 0x6f, + 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, + 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, + 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x5f, 0x56, 0x32, 0x12, 0x8f, 0x01, 0x0a, 0x27, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, + 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x76, 0x32, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x48, 0x65, 0x61, 0x64, 0x56, 0x32, 0x48, 0x00, 0x52, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, + 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x32, 0x48, 0x00, 0x52, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x56, 0x32, 0x12, 0x78, 0x0a, 0x1f, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, - 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x76, 0x32, 0x18, 0x15, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, - 0x79, 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, - 0x49, 0x54, 0x5f, 0x56, 0x32, 0x12, 0x8f, 0x01, 0x0a, 0x27, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, - 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x76, - 0x32, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, - 0x32, 0x48, 0x00, 0x52, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, - 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, - 0x52, 0x4f, 0x4f, 0x46, 0x5f, 0x56, 0x32, 0x12, 0x38, 0x0a, 0x16, 0x6d, 0x65, 0x6d, 0x70, 0x6f, - 0x6f, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, - 0x32, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x16, 0x4d, 0x45, 0x4d, 0x50, 0x4f, - 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, - 0x32, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x32, 0x18, 0x18, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x21, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, - 0x32, 0x12, 0x62, 0x0a, 0x15, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x76, 0x32, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, - 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, 0x32, 0x48, 0x00, 0x52, 0x26, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, - 0x43, 0x45, 0x5f, 0x56, 0x32, 0x12, 0x71, 0x0a, 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, - 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6f, 0x72, - 0x67, 0x5f, 0x76, 0x32, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, - 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, - 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x12, 0x82, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, - 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, - 0x6e, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, - 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x56, 0x32, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, - 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0x82, 0x01, - 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, - 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x56, 0x32, 0x48, 0x00, - 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, - 0x4e, 0x47, 0x12, 0x7f, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, - 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, - 0x56, 0x32, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, + 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x5f, 0x56, 0x32, 0x12, 0x38, 0x0a, + 0x16, 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x32, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x16, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, + 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, + 0x32, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x56, 0x32, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, - 0x58, 0x49, 0x54, 0x12, 0x65, 0x0a, 0x1b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x32, - 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x12, 0x98, 0x01, 0x0a, 0x2b, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x32, 0x48, 0x00, 0x52, 0x36, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, - 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, - 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, - 0x48, 0x41, 0x4e, 0x47, 0x45, 0x12, 0x83, 0x01, 0x0a, 0x29, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, - 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6e, 0x0a, 0x1e, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x18, 0x21, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x56, 0x32, 0x48, 0x00, - 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, 0x4c, 0x12, 0x6a, 0x0a, 0x1a, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, - 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, - 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, - 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x6b, 0x0a, 0x20, 0x65, 0x74, 0x68, 0x5f, 0x76, - 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, - 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x24, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x25, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, - 0x45, 0x43, 0x41, 0x52, 0x12, 0x54, 0x0a, 0x16, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x70, - 0x32, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x25, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, - 0x48, 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, - 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x5a, 0x0a, 0x14, 0x65, 0x74, - 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x75, - 0x74, 0x79, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, - 0x75, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, - 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x12, 0x8f, 0x01, 0x0a, 0x2a, 0x65, 0x74, 0x68, 0x5f, 0x76, - 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, - 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, - 0x00, 0x52, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x12, 0x62, 0x0a, 0x15, 0x65, 0x74, 0x68, 0x5f, 0x76, + 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x76, 0x32, + 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, + 0x32, 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, + 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x56, 0x32, 0x12, 0x71, 0x0a, 0x1b, 0x65, + 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x5f, 0x76, 0x32, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, + 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x48, 0x00, + 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, + 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x12, 0x82, + 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, + 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x56, 0x32, 0x48, + 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, - 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, - 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x65, 0x65, - 0x72, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, - 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x44, - 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, 0x55, 0x0a, 0x18, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x65, - 0x65, 0x72, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, - 0x72, 0x48, 0x00, 0x52, 0x18, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, 0x4c, 0x0a, - 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, - 0x63, 0x76, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, 0x65, 0x63, 0x76, 0x52, - 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x4c, 0x0a, 0x15, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x64, - 0x5f, 0x72, 0x70, 0x63, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, - 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x41, 0x0a, 0x11, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x2c, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x48, 0x00, 0x52, 0x11, 0x4c, 0x49, 0x42, 0x50, 0x32, - 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x12, 0x50, 0x0a, 0x16, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x59, - 0x0a, 0x19, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, - 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x2e, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, - 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x19, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, - 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x48, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x1c, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, - 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x12, 0x5b, 0x0a, 0x1a, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x48, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x1a, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, - 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x12, 0x7a, 0x0a, 0x23, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, - 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, - 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, - 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x78, 0x0a, 0x29, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, - 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x29, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, + 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, + 0x49, 0x4e, 0x47, 0x12, 0x82, 0x01, 0x0a, 0x25, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x1c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, + 0x6e, 0x67, 0x56, 0x32, 0x48, 0x00, 0x52, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, + 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x12, 0x7f, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, + 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x1d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, + 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, + 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x12, 0x65, 0x0a, 0x1b, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x56, 0x32, 0x48, 0x00, 0x52, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, + 0x12, 0x98, 0x01, 0x0a, 0x2b, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, + 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x4c, 0x53, 0x54, 0x6f, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x56, + 0x32, 0x48, 0x00, 0x52, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x12, 0x83, 0x01, 0x0a, 0x29, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x34, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, + 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x12, 0x6e, 0x0a, 0x1e, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x61, 0x6c, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, + 0x61, 0x6c, 0x56, 0x32, 0x48, 0x00, 0x52, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, + 0x4c, 0x12, 0x6a, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, + 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, + 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x6b, 0x0a, + 0x20, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, + 0x72, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, + 0x72, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, + 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x54, 0x0a, 0x16, 0x62, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x12, 0x5a, 0x0a, 0x14, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x65, 0x72, 0x5f, 0x64, 0x75, 0x74, 0x79, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x50, + 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x12, 0x8f, 0x01, 0x0a, + 0x2a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x27, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, + 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x4c, + 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x61, + 0x64, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x41, 0x64, 0x64, 0x50, + 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, 0x55, 0x0a, 0x18, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, 0x18, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x50, + 0x45, 0x45, 0x52, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x76, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x2a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x2e, 0x52, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, + 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, 0x52, 0x50, + 0x43, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, + 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, + 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x50, 0x43, 0x12, + 0x41, 0x0a, 0x11, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, + 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x48, 0x00, 0x52, + 0x11, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4a, 0x4f, + 0x49, 0x4e, 0x12, 0x50, 0x0a, 0x16, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, + 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x2d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x16, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x45, 0x44, 0x12, 0x59, 0x0a, 0x19, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x48, 0x00, 0x52, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, + 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, + 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, + 0x54, 0x41, 0x12, 0x5b, 0x0a, 0x1a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, + 0x63, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x48, 0x00, 0x52, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x12, 0x7a, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, - 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, - 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, + 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, - 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, - 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, - 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x52, 0x0a, 0x11, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, - 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x12, - 0x7d, 0x0a, 0x2c, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x62, 0x69, 0x64, - 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, - 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x42, 0x69, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x00, - 0x52, 0x2c, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x42, 0x49, 0x44, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x12, 0x74, - 0x0a, 0x1b, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, 0x36, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, - 0x6c, 0x61, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x24, - 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, - 0x45, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, - 0x45, 0x52, 0x45, 0x44, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x33, 0x5f, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x37, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x48, - 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x33, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x72, 0x0a, 0x20, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, - 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x20, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, - 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, - 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6a, 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, - 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x48, 0x00, 0x52, 0x25, 0x42, - 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x47, 0x4f, - 0x53, 0x53, 0x49, 0x50, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, - 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x3a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, - 0x50, 0x43, 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, - 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4c, 0x65, 0x61, - 0x76, 0x65, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x3c, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x78, 0x0a, 0x29, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, + 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x29, 0x4c, 0x49, 0x42, 0x50, + 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, + 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x7a, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, + 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x33, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x42, + 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, + 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, + 0x52, 0x12, 0x52, 0x0a, 0x11, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x00, + 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, + 0x41, 0x54, 0x4f, 0x52, 0x53, 0x12, 0x7d, 0x0a, 0x2c, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, + 0x61, 0x79, 0x5f, 0x62, 0x69, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x62, 0x75, 0x69, + 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x42, 0x69, 0x64, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x2c, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, + 0x59, 0x5f, 0x42, 0x49, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x42, 0x55, 0x49, 0x4c, + 0x44, 0x45, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x53, + 0x53, 0x49, 0x4f, 0x4e, 0x12, 0x74, 0x0a, 0x1b, 0x6d, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, + 0x79, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, + 0x72, 0x65, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x6d, 0x65, 0x76, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, + 0x65, 0x64, 0x48, 0x00, 0x52, 0x24, 0x4d, 0x45, 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, + 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, + 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x74, + 0x68, 0x5f, 0x76, 0x33, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x48, 0x00, 0x52, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x33, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, + 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x12, 0x72, 0x0a, 0x20, 0x6d, 0x65, + 0x76, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x38, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6d, 0x65, 0x76, 0x72, + 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x20, 0x4d, 0x45, + 0x56, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, + 0x52, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6a, + 0x0a, 0x1a, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x18, 0x39, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f, 0x73, 0x73, 0x69, + 0x70, 0x48, 0x00, 0x52, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, + 0x72, 0x70, 0x63, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x50, 0x43, 0x48, + 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, + 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x47, 0x72, 0x61, 0x66, 0x74, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, - 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x12, 0x44, - 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, - 0x72, 0x75, 0x6e, 0x65, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x48, 0x00, - 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, - 0x52, 0x55, 0x4e, 0x45, 0x12, 0x67, 0x0a, 0x1e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, - 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1e, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, - 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x61, 0x0a, - 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x65, - 0x6c, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x3f, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, - 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, - 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, - 0x41, 0x47, 0x45, 0x12, 0x5e, 0x0a, 0x1b, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, - 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1b, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, - 0x41, 0x47, 0x45, 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, - 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x68, 0x61, 0x76, 0x65, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x48, 0x61, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x49, - 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, - 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x48, 0x41, 0x56, 0x45, 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, - 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x77, 0x61, 0x6e, - 0x74, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x57, 0x61, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, - 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, - 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x57, 0x41, 0x4e, - 0x54, 0x12, 0x81, 0x01, 0x0a, 0x27, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, + 0x32, 0x70, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, + 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x12, 0x44, + 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, + 0x72, 0x61, 0x66, 0x74, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x47, 0x72, 0x61, 0x66, 0x74, 0x48, 0x00, + 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, + 0x52, 0x41, 0x46, 0x54, 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, + 0x72, 0x75, 0x6e, 0x65, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x12, 0x67, 0x0a, 0x1e, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x3e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x2e, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x48, 0x00, 0x52, 0x1e, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x4d, + 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, + 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x5e, 0x0a, 0x1b, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, 0x65, 0x6a, + 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1b, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, + 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x68, 0x61, 0x76, 0x65, + 0x18, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x48, 0x61, 0x76, + 0x65, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, + 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x48, 0x41, 0x56, 0x45, + 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, + 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x5f, 0x69, 0x77, 0x61, 0x6e, 0x74, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x49, 0x57, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, + 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, + 0x4c, 0x5f, 0x49, 0x57, 0x41, 0x4e, 0x54, 0x12, 0x81, 0x01, 0x0a, 0x27, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x6f, 0x6e, 0x74, 0x77, + 0x61, 0x6e, 0x74, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, + 0x44, 0x6f, 0x6e, 0x74, 0x57, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, + 0x48, 0x00, 0x52, 0x27, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, + 0x4c, 0x5f, 0x49, 0x44, 0x4f, 0x4e, 0x54, 0x57, 0x41, 0x4e, 0x54, 0x12, 0x75, 0x0a, 0x23, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x67, 0x72, 0x61, + 0x66, 0x74, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, + 0x61, 0x66, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, + 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x47, 0x52, 0x41, + 0x46, 0x54, 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x6f, 0x6e, 0x74, 0x77, 0x61, 0x6e, 0x74, 0x18, 0x44, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, - 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x44, 0x6f, 0x6e, 0x74, 0x57, 0x61, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x27, 0x4c, 0x49, + 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, + 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, + 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x12, 0x6a, 0x0a, 0x22, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x47, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x2e, 0x53, 0x75, 0x62, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, + 0x00, 0x52, 0x22, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, + 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, + 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x64, 0x0a, 0x1d, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x1d, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, - 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x49, 0x44, 0x4f, 0x4e, - 0x54, 0x57, 0x41, 0x4e, 0x54, 0x12, 0x75, 0x0a, 0x23, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x45, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61, 0x66, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, - 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x12, 0x75, 0x0a, 0x23, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x72, - 0x75, 0x6e, 0x65, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, - 0x72, 0x75, 0x6e, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x23, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, - 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, - 0x55, 0x4e, 0x45, 0x12, 0x6a, 0x0a, 0x22, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, - 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x73, 0x75, 0x62, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, 0x75, - 0x62, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x22, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, - 0x54, 0x41, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x12, - 0x64, 0x0a, 0x1d, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, - 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x1d, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x4d, 0x45, - 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x52, 0x0a, 0x15, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x18, 0x49, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6e, 0x6f, 0x64, 0x65, - 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, - 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, - 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x12, 0x52, 0x0a, 0x15, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, - 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x93, 0x01, - 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, - 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x4b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, - 0x6f, 0x6f, 0x66, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, - 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, - 0x4f, 0x4f, 0x46, 0x12, 0x7e, 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, - 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, - 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, - 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, - 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, - 0x43, 0x41, 0x52, 0x12, 0x8e, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, - 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, - 0x61, 0x72, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, - 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, - 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, - 0x45, 0x43, 0x41, 0x52, 0x12, 0x6d, 0x0a, 0x20, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, - 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x5f, 0x68, - 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, 0x79, 0x6e, - 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x48, - 0x00, 0x52, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, - 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, - 0x45, 0x41, 0x54, 0x12, 0x4d, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, - 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x18, 0x4f, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, - 0x46, 0x59, 0x12, 0x86, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, - 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x62, - 0x65, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x48, 0x00, 0x52, - 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, - 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x43, 0x55, - 0x53, 0x54, 0x4f, 0x44, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x12, 0x4f, 0x0a, 0x14, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x48, 0x00, 0x52, 0x14, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x12, 0x71, 0x0a, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x18, 0xca, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, - 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, - 0x49, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x20, 0x43, - 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, - 0x6b, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x67, - 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x62, - 0x73, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, - 0x50, 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x48, 0x00, 0x52, 0x1e, 0x43, 0x4f, - 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x12, 0x66, 0x0a, 0x1c, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, - 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0xcc, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x1c, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, - 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x60, 0x0a, 0x1a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x6c, 0x6f, - 0x62, 0x73, 0x18, 0xcd, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x45, 0x54, 0x41, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x52, 0x0a, 0x15, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x65, + 0x6e, 0x73, 0x75, 0x73, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x43, 0x6f, 0x6e, + 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x52, + 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x12, + 0x52, 0x0a, 0x15, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x15, 0x4e, 0x4f, + 0x44, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, + 0x49, 0x4f, 0x4e, 0x12, 0x93, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, + 0x6f, 0x66, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, 0x32, 0x48, 0x00, 0x52, 0x2a, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, + 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, + 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x12, 0x7e, 0x0a, 0x21, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x4c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, + 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x8e, 0x01, 0x0a, 0x2a, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, + 0x70, 0x73, 0x75, 0x62, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, + 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x48, 0x00, 0x52, 0x2a, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, + 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, + 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x12, 0x6d, 0x0a, 0x20, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x79, 0x6e, 0x74, 0x68, + 0x65, 0x74, 0x69, 0x63, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x4e, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, + 0x74, 0x62, 0x65, 0x61, 0x74, 0x48, 0x00, 0x52, 0x20, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x54, 0x48, 0x45, 0x54, 0x49, 0x43, 0x5f, + 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x12, 0x4d, 0x0a, 0x15, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x79, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x48, + 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, + 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x59, 0x12, 0x86, 0x01, 0x0a, 0x2a, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, + 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x50, 0x72, + 0x6f, 0x62, 0x65, 0x48, 0x00, 0x52, 0x2a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x45, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, + 0x55, 0x4d, 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x44, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x42, + 0x45, 0x12, 0x4f, 0x0a, 0x14, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x48, 0x00, 0x52, 0x14, 0x45, 0x58, + 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x49, + 0x5a, 0x45, 0x12, 0x71, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, + 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0xca, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x48, 0x00, 0x52, 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, + 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x41, + 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x6b, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, + 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x67, 0x65, + 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x45, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, + 0x48, 0x00, 0x52, 0x1e, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x53, 0x55, 0x53, 0x5f, 0x45, 0x4e, + 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, + 0x42, 0x53, 0x12, 0x66, 0x0a, 0x1c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x18, 0xcc, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, - 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x48, 0x00, 0x52, 0x1a, 0x45, 0x58, 0x45, 0x43, - 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x47, 0x45, 0x54, - 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x12, 0x4f, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, - 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x18, 0xce, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x12, 0x69, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, - 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0xcf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, - 0x45, 0x45, 0x12, 0x75, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0xd0, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, - 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x12, 0x58, 0x0a, 0x17, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x18, 0xd1, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x17, 0x45, 0x58, 0x45, 0x43, - 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4d, 0x45, 0x54, 0x52, - 0x49, 0x43, 0x53, 0x12, 0x7a, 0x0a, 0x1f, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0xd2, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x12, - 0x83, 0x01, 0x0a, 0x1f, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x18, 0xd3, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, - 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x1c, 0x45, 0x58, + 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x4e, + 0x45, 0x57, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x60, 0x0a, 0x1a, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x67, + 0x65, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x18, 0xcd, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x48, 0x00, + 0x52, 0x1a, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x47, 0x49, + 0x4e, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x53, 0x12, 0x4f, 0x0a, 0x12, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, + 0x6f, 0x62, 0x18, 0xce, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x1d, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, + 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x12, 0x69, 0x0a, + 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0xcf, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x79, 0x6e, 0x63, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, + 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x43, + 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x12, 0x75, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, + 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0xd0, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x79, 0x6e, + 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, + 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x12, + 0x58, 0x0a, 0x17, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0xd1, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x00, + 0x52, 0x17, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, + 0x4b, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x53, 0x12, 0x7a, 0x0a, 0x1f, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0xd2, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, + 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x12, 0x83, 0x01, 0x0a, 0x1f, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, + 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0xd3, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x48, 0x00, 0x52, + 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x82, 0x01, 0x0a, 0x21, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0xd4, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x50, 0x41, 0x59, + 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x12, 0x86, 0x01, 0x0a, 0x23, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x69, 0x64, 0x18, 0xd5, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x69, 0x64, 0x48, 0x00, 0x52, 0x2e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, - 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x12, 0x82, 0x01, 0x0a, 0x21, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, - 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, - 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xd4, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x2c, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, - 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x86, 0x01, 0x0a, 0x23, 0x65, - 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, - 0x69, 0x64, 0x18, 0xd5, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x69, - 0x64, 0x48, 0x00, 0x52, 0x2e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x45, 0x58, - 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, - 0x42, 0x49, 0x44, 0x12, 0x84, 0x01, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x70, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0xd6, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x50, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x48, 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, - 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x12, 0x87, 0x01, 0x0a, 0x27, 0x65, + 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x49, 0x44, 0x12, 0x84, 0x01, 0x0a, 0x22, 0x65, 0x74, + 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x18, 0xd6, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x48, + 0x00, 0x52, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x50, + 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x53, + 0x12, 0x87, 0x01, 0x0a, 0x27, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xd7, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, + 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x92, 0x01, 0x0a, 0x29, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xd7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, - 0x52, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x92, 0x01, 0x0a, 0x29, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, - 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, - 0x69, 0x64, 0x18, 0xd8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x69, - 0x64, 0x48, 0x00, 0x52, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, - 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x49, 0x44, 0x12, 0xa4, 0x01, 0x0a, 0x31, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, - 0x70, 0x73, 0x75, 0x62, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x65, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x18, - 0xd9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x48, 0x00, 0x52, 0x31, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, - 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x56, 0x45, 0x4c, 0x4f, 0x50, 0x45, - 0x12, 0x95, 0x01, 0x0a, 0x2c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x69, - 0x64, 0x18, 0xda, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x69, 0x64, 0x48, 0x00, 0x52, 0x2c, 0x4c, 0x49, 0x42, 0x50, - 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, - 0x55, 0x42, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, - 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x49, 0x44, 0x12, 0xa7, 0x01, 0x0a, 0x32, 0x6c, 0x69, 0x62, + 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x69, 0x64, 0x18, 0xd8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x69, 0x64, 0x48, 0x00, 0x52, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x49, 0x44, 0x12, + 0xa4, 0x01, 0x0a, 0x31, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, + 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x65, 0x6e, 0x76, + 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x18, 0xd9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, + 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, + 0x65, 0x48, 0x00, 0x52, 0x31, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x45, 0x58, 0x45, 0x43, + 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x4e, + 0x56, 0x45, 0x4c, 0x4f, 0x50, 0x45, 0x12, 0x95, 0x01, 0x0a, 0x2c, 0x6c, 0x69, 0x62, 0x70, 0x32, + 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, + 0x62, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x69, 0x64, 0x18, 0xda, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, + 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x69, 0x64, 0x48, 0x00, + 0x52, 0x2c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, + 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x49, 0x44, 0x12, 0xa7, + 0x01, 0x0a, 0x32, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, + 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xdb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, + 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x48, 0x00, 0x52, 0x32, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x50, 0x41, 0x59, + 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x93, 0x01, 0x0a, 0x2b, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, - 0x73, 0x75, 0x62, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0xdb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x32, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, - 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x41, - 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, - 0x47, 0x45, 0x12, 0x93, 0x01, 0x0a, 0x2b, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, - 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x18, 0xdc, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, - 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x50, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x48, 0x00, 0x52, 0x2b, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, - 0x53, 0x55, 0x42, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x45, - 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x2a, 0x6c, 0x0a, 0x0c, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x19, 0x0a, 0x15, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, - 0x5f, 0x53, 0x4e, 0x4f, 0x4f, 0x50, 0x45, 0x52, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x4e, - 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x58, 0x45, 0x43, - 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x32, 0x58, - 0x0a, 0x0d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, - 0x47, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, - 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, - 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x75, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0xdc, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, + 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x48, + 0x00, 0x52, 0x2b, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, + 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, + 0x45, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x42, 0x06, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x2a, 0x6c, 0x0a, 0x0c, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, + 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, + 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x53, 0x4e, 0x4f, 0x4f, 0x50, 0x45, 0x52, 0x10, 0x01, + 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, + 0x45, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x49, 0x45, + 0x4e, 0x54, 0x10, 0x02, 0x32, 0x58, 0x0a, 0x0d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x67, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2c, + 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, + 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, + 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -16676,7 +17926,7 @@ func file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP() []byte { } var file_pkg_proto_xatu_event_ingester_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_pkg_proto_xatu_event_ingester_proto_msgTypes = make([]protoimpl.MessageInfo, 141) +var file_pkg_proto_xatu_event_ingester_proto_msgTypes = make([]protoimpl.MessageInfo, 151) var file_pkg_proto_xatu_event_ingester_proto_goTypes = []any{ (EngineSource)(0), // 0: xatu.EngineSource (Event_Name)(0), // 1: xatu.Event.Name @@ -16752,222 +18002,232 @@ var file_pkg_proto_xatu_event_ingester_proto_goTypes = []any{ (*ClientMeta_AdditionalEthV2BeaconBlockExecutionTransactionData)(nil), // 71: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData (*ClientMeta_AdditionalEthV2BeaconBlockWithdrawalData)(nil), // 72: xatu.ClientMeta.AdditionalEthV2BeaconBlockWithdrawalData (*ClientMeta_AdditionalEthV2BeaconBlockAccessListData)(nil), // 73: xatu.ClientMeta.AdditionalEthV2BeaconBlockAccessListData - (*ClientMeta_AttestationDataSnapshot)(nil), // 74: xatu.ClientMeta.AttestationDataSnapshot - (*ClientMeta_AdditionalEthV1ValidatorAttestationDataData)(nil), // 75: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData - (*ClientMeta_AdditionalEthV1EventsBlobSidecarData)(nil), // 76: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData - (*ClientMeta_AdditionalEthV1EventsDataColumnSidecarData)(nil), // 77: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData - (*ClientMeta_AdditionalEthV1BeaconBlobSidecarData)(nil), // 78: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData - (*ClientMeta_AdditionalBeaconP2PAttestationData)(nil), // 79: xatu.ClientMeta.AdditionalBeaconP2PAttestationData - (*ClientMeta_AdditionalEthV1ProposerDutyData)(nil), // 80: xatu.ClientMeta.AdditionalEthV1ProposerDutyData - (*ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData)(nil), // 81: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData - (*ClientMeta_AdditionalLibP2PTraceAddPeerData)(nil), // 82: xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData - (*ClientMeta_AdditionalLibP2PTraceRemovePeerData)(nil), // 83: xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData - (*ClientMeta_AdditionalLibP2PTraceRecvRPCData)(nil), // 84: xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData - (*ClientMeta_AdditionalLibP2PTraceSendRPCData)(nil), // 85: xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData - (*ClientMeta_AdditionalLibP2PTraceDropRPCData)(nil), // 86: xatu.ClientMeta.AdditionalLibP2PTraceDropRPCData - (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData)(nil), // 87: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIHaveData - (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData)(nil), // 88: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIWantData - (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData)(nil), // 89: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIDontWantData - (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData)(nil), // 90: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlGraftData - (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData)(nil), // 91: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlPruneData - (*ClientMeta_AdditionalLibP2PTraceJoinData)(nil), // 92: xatu.ClientMeta.AdditionalLibP2PTraceJoinData - (*ClientMeta_AdditionalLibP2PTraceLeaveData)(nil), // 93: xatu.ClientMeta.AdditionalLibP2PTraceLeaveData - (*ClientMeta_AdditionalLibP2PTraceGraftData)(nil), // 94: xatu.ClientMeta.AdditionalLibP2PTraceGraftData - (*ClientMeta_AdditionalLibP2PTracePruneData)(nil), // 95: xatu.ClientMeta.AdditionalLibP2PTracePruneData - (*ClientMeta_AdditionalLibP2PTraceDuplicateMessageData)(nil), // 96: xatu.ClientMeta.AdditionalLibP2PTraceDuplicateMessageData - (*ClientMeta_AdditionalLibP2PTraceDeliverMessageData)(nil), // 97: xatu.ClientMeta.AdditionalLibP2PTraceDeliverMessageData - (*ClientMeta_AdditionalLibP2PTracePublishMessageData)(nil), // 98: xatu.ClientMeta.AdditionalLibP2PTracePublishMessageData - (*ClientMeta_AdditionalLibP2PTraceRejectMessageData)(nil), // 99: xatu.ClientMeta.AdditionalLibP2PTraceRejectMessageData - (*ClientMeta_AdditionalLibP2PTraceConnectedData)(nil), // 100: xatu.ClientMeta.AdditionalLibP2PTraceConnectedData - (*ClientMeta_AdditionalLibP2PTraceDisconnectedData)(nil), // 101: xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData - (*ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData)(nil), // 102: xatu.ClientMeta.AdditionalLibP2PTraceSyntheticHeartbeatData - (*ClientMeta_AdditionalLibP2PTraceHandleMetadataData)(nil), // 103: xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData - (*ClientMeta_AdditionalLibP2PTraceHandleStatusData)(nil), // 104: xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData - (*ClientMeta_AdditionalLibP2PTraceIdentifyData)(nil), // 105: xatu.ClientMeta.AdditionalLibP2PTraceIdentifyData - (*ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData)(nil), // 106: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData - (*ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData)(nil), // 107: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaSubscriptionData - (*ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData)(nil), // 108: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaMessageData - (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData)(nil), // 109: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData - (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData)(nil), // 110: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData - (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData)(nil), // 111: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData - (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData)(nil), // 112: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData - (*ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData)(nil), // 113: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData - (*ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData)(nil), // 114: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData - (*ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData)(nil), // 115: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData - (*ClientMeta_AdditionalEthV1ValidatorsData)(nil), // 116: xatu.ClientMeta.AdditionalEthV1ValidatorsData - (*ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData)(nil), // 117: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData - (*ClientMeta_AdditionalMevRelayPayloadDeliveredData)(nil), // 118: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData - (*ClientMeta_AdditionalEthV3ValidatorBlockData)(nil), // 119: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData - (*ClientMeta_AdditionalMevRelayValidatorRegistrationData)(nil), // 120: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData - (*ClientMeta_AdditionalNodeRecordConsensusData)(nil), // 121: xatu.ClientMeta.AdditionalNodeRecordConsensusData - (*ClientMeta_AdditionalConsensusEngineAPINewPayloadData)(nil), // 122: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData - (*ClientMeta_AdditionalConsensusEngineAPIGetBlobsData)(nil), // 123: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData - (*ClientMeta_AdditionalEthV1BeaconBlobData)(nil), // 124: xatu.ClientMeta.AdditionalEthV1BeaconBlobData - (*ClientMeta_Ethereum_Network)(nil), // 125: xatu.ClientMeta.Ethereum.Network - (*ClientMeta_Ethereum_Execution)(nil), // 126: xatu.ClientMeta.Ethereum.Execution - (*ClientMeta_Ethereum_Consensus)(nil), // 127: xatu.ClientMeta.Ethereum.Consensus - (*ServerMeta_Event)(nil), // 128: xatu.ServerMeta.Event - (*ServerMeta_Geo)(nil), // 129: xatu.ServerMeta.Geo - (*ServerMeta_Client)(nil), // 130: xatu.ServerMeta.Client - (*ServerMeta_Peer)(nil), // 131: xatu.ServerMeta.Peer - (*ServerMeta_AdditionalBeaconP2PAttestationData)(nil), // 132: xatu.ServerMeta.AdditionalBeaconP2PAttestationData - (*ServerMeta_AdditionalLibp2PTraceConnectedData)(nil), // 133: xatu.ServerMeta.AdditionalLibp2PTraceConnectedData - (*ServerMeta_AdditionalLibp2PTraceDisconnectedData)(nil), // 134: xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData - (*ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData)(nil), // 135: xatu.ServerMeta.AdditionalLibP2PTraceSyntheticHeartbeatData - (*ServerMeta_AdditionalLibp2PTraceIdentifyData)(nil), // 136: xatu.ServerMeta.AdditionalLibp2PTraceIdentifyData - (*ServerMeta_AdditionalNodeRecordConsensusData)(nil), // 137: xatu.ServerMeta.AdditionalNodeRecordConsensusData - (*ServerMeta_AdditionalNodeRecordExecutionData)(nil), // 138: xatu.ServerMeta.AdditionalNodeRecordExecutionData - (*ExecutionBlockMetrics_StateReads)(nil), // 139: xatu.ExecutionBlockMetrics.StateReads - (*ExecutionBlockMetrics_StateWrites)(nil), // 140: xatu.ExecutionBlockMetrics.StateWrites - (*ExecutionBlockMetrics_CacheEntry)(nil), // 141: xatu.ExecutionBlockMetrics.CacheEntry - (*ExecutionBlockMetrics_CodeCacheEntry)(nil), // 142: xatu.ExecutionBlockMetrics.CodeCacheEntry - (*wrapperspb.UInt64Value)(nil), // 143: google.protobuf.UInt64Value - (*timestamppb.Timestamp)(nil), // 144: google.protobuf.Timestamp - (*v1.ForkChoice)(nil), // 145: xatu.eth.v1.ForkChoice - (*v1.EventChainReorg)(nil), // 146: xatu.eth.v1.EventChainReorg - (*v1.ForkChoiceV2)(nil), // 147: xatu.eth.v1.ForkChoiceV2 - (*v1.EventChainReorgV2)(nil), // 148: xatu.eth.v1.EventChainReorgV2 - (*v1.Validator)(nil), // 149: xatu.eth.v1.Validator - (*v1.SyncCommittee)(nil), // 150: xatu.eth.v1.SyncCommittee - (*wrapperspb.UInt32Value)(nil), // 151: google.protobuf.UInt32Value - (ModuleName)(0), // 152: xatu.ModuleName - (*wrapperspb.DoubleValue)(nil), // 153: google.protobuf.DoubleValue - (*v1.Attestation)(nil), // 154: xatu.eth.v1.Attestation - (*v1.EventBlock)(nil), // 155: xatu.eth.v1.EventBlock - (*v1.EventFinalizedCheckpoint)(nil), // 156: xatu.eth.v1.EventFinalizedCheckpoint - (*v1.EventHead)(nil), // 157: xatu.eth.v1.EventHead - (*v1.EventVoluntaryExit)(nil), // 158: xatu.eth.v1.EventVoluntaryExit - (*v1.EventContributionAndProof)(nil), // 159: xatu.eth.v1.EventContributionAndProof - (*v2.EventBlock)(nil), // 160: xatu.eth.v2.EventBlock - (*v1.Committee)(nil), // 161: xatu.eth.v1.Committee - (*v1.AttestationDataV2)(nil), // 162: xatu.eth.v1.AttestationDataV2 - (*v1.AttestationV2)(nil), // 163: xatu.eth.v1.AttestationV2 - (*v1.EventBlockV2)(nil), // 164: xatu.eth.v1.EventBlockV2 - (*v1.EventFinalizedCheckpointV2)(nil), // 165: xatu.eth.v1.EventFinalizedCheckpointV2 - (*v1.EventHeadV2)(nil), // 166: xatu.eth.v1.EventHeadV2 - (*v1.EventVoluntaryExitV2)(nil), // 167: xatu.eth.v1.EventVoluntaryExitV2 - (*v1.EventContributionAndProofV2)(nil), // 168: xatu.eth.v1.EventContributionAndProofV2 - (*v2.EventBlockV2)(nil), // 169: xatu.eth.v2.EventBlockV2 - (*v1.AttesterSlashingV2)(nil), // 170: xatu.eth.v1.AttesterSlashingV2 - (*v1.ProposerSlashingV2)(nil), // 171: xatu.eth.v1.ProposerSlashingV2 - (*v1.SignedVoluntaryExitV2)(nil), // 172: xatu.eth.v1.SignedVoluntaryExitV2 - (*v1.DepositV2)(nil), // 173: xatu.eth.v1.DepositV2 - (*v2.SignedBLSToExecutionChangeV2)(nil), // 174: xatu.eth.v2.SignedBLSToExecutionChangeV2 - (*v1.Transaction)(nil), // 175: xatu.eth.v1.Transaction - (*v1.WithdrawalV2)(nil), // 176: xatu.eth.v1.WithdrawalV2 - (*v1.EventBlobSidecar)(nil), // 177: xatu.eth.v1.EventBlobSidecar - (*v1.BlobSidecar)(nil), // 178: xatu.eth.v1.BlobSidecar - (*v1.ProposerDuty)(nil), // 179: xatu.eth.v1.ProposerDuty - (*v1.ElaboratedAttestation)(nil), // 180: xatu.eth.v1.ElaboratedAttestation - (*libp2p.AddPeer)(nil), // 181: xatu.libp2p.AddPeer - (*libp2p.RemovePeer)(nil), // 182: xatu.libp2p.RemovePeer - (*libp2p.RecvRPC)(nil), // 183: xatu.libp2p.RecvRPC - (*libp2p.SendRPC)(nil), // 184: xatu.libp2p.SendRPC - (*libp2p.Join)(nil), // 185: xatu.libp2p.Join - (*libp2p.Connected)(nil), // 186: xatu.libp2p.Connected - (*libp2p.Disconnected)(nil), // 187: xatu.libp2p.Disconnected - (*libp2p.HandleMetadata)(nil), // 188: xatu.libp2p.HandleMetadata - (*libp2p.HandleStatus)(nil), // 189: xatu.libp2p.HandleStatus - (*gossipsub.BeaconBlock)(nil), // 190: xatu.libp2p.gossipsub.eth.BeaconBlock - (*gossipsub.BlobSidecar)(nil), // 191: xatu.libp2p.gossipsub.eth.BlobSidecar - (*mevrelay.BidTrace)(nil), // 192: xatu.mevrelay.BidTrace - (*mevrelay.ProposerPayloadDelivered)(nil), // 193: xatu.mevrelay.ProposerPayloadDelivered - (*mevrelay.ValidatorRegistration)(nil), // 194: xatu.mevrelay.ValidatorRegistration - (*v1.EventBlockGossip)(nil), // 195: xatu.eth.v1.EventBlockGossip - (*libp2p.DropRPC)(nil), // 196: xatu.libp2p.DropRPC - (*libp2p.Leave)(nil), // 197: xatu.libp2p.Leave - (*libp2p.Graft)(nil), // 198: xatu.libp2p.Graft - (*libp2p.Prune)(nil), // 199: xatu.libp2p.Prune - (*libp2p.DuplicateMessage)(nil), // 200: xatu.libp2p.DuplicateMessage - (*libp2p.DeliverMessage)(nil), // 201: xatu.libp2p.DeliverMessage - (*libp2p.PublishMessage)(nil), // 202: xatu.libp2p.PublishMessage - (*libp2p.RejectMessage)(nil), // 203: xatu.libp2p.RejectMessage - (*libp2p.ControlIHaveMetaItem)(nil), // 204: xatu.libp2p.ControlIHaveMetaItem - (*libp2p.ControlIWantMetaItem)(nil), // 205: xatu.libp2p.ControlIWantMetaItem - (*libp2p.ControlIDontWantMetaItem)(nil), // 206: xatu.libp2p.ControlIDontWantMetaItem - (*libp2p.ControlGraftMetaItem)(nil), // 207: xatu.libp2p.ControlGraftMetaItem - (*libp2p.ControlPruneMetaItem)(nil), // 208: xatu.libp2p.ControlPruneMetaItem - (*libp2p.SubMetaItem)(nil), // 209: xatu.libp2p.SubMetaItem - (*libp2p.MessageMetaItem)(nil), // 210: xatu.libp2p.MessageMetaItem - (*noderecord.Consensus)(nil), // 211: xatu.noderecord.Consensus - (*noderecord.Execution)(nil), // 212: xatu.noderecord.Execution - (*v1.SignedAggregateAttestationAndProofV2)(nil), // 213: xatu.eth.v1.SignedAggregateAttestationAndProofV2 - (*v1.EventDataColumnSidecar)(nil), // 214: xatu.eth.v1.EventDataColumnSidecar - (*gossipsub.DataColumnSidecar)(nil), // 215: xatu.libp2p.gossipsub.eth.DataColumnSidecar - (*libp2p.SyntheticHeartbeat)(nil), // 216: xatu.libp2p.SyntheticHeartbeat - (*libp2p.Identify)(nil), // 217: xatu.libp2p.Identify - (*libp2p.DataColumnCustodyProbe)(nil), // 218: xatu.libp2p.DataColumnCustodyProbe - (*v1.Blob)(nil), // 219: xatu.eth.v1.Blob - (*v1.BlockAccessListChange)(nil), // 220: xatu.eth.v1.BlockAccessListChange - (*v1.SignedExecutionPayloadEnvelope)(nil), // 221: xatu.eth.v1.SignedExecutionPayloadEnvelope - (*v1.PayloadAttestationMessage)(nil), // 222: xatu.eth.v1.PayloadAttestationMessage - (*v1.SignedExecutionPayloadBid)(nil), // 223: xatu.eth.v1.SignedExecutionPayloadBid - (*v1.SignedProposerPreferences)(nil), // 224: xatu.eth.v1.SignedProposerPreferences - (*v1.PayloadAttestation)(nil), // 225: xatu.eth.v1.PayloadAttestation - (*gossipsub.ExecutionPayloadEnvelope)(nil), // 226: xatu.libp2p.gossipsub.eth.ExecutionPayloadEnvelope - (*gossipsub.ExecutionPayloadBid)(nil), // 227: xatu.libp2p.gossipsub.eth.ExecutionPayloadBid - (*gossipsub.PayloadAttestationMessage)(nil), // 228: xatu.libp2p.gossipsub.eth.PayloadAttestationMessage - (*gossipsub.ProposerPreferences)(nil), // 229: xatu.libp2p.gossipsub.eth.ProposerPreferences - (*libp2p.Peer)(nil), // 230: xatu.libp2p.Peer - (*wrapperspb.BoolValue)(nil), // 231: google.protobuf.BoolValue - (*libp2p.TraceEventMetadata)(nil), // 232: xatu.libp2p.TraceEventMetadata - (*wrapperspb.StringValue)(nil), // 233: google.protobuf.StringValue - (*mevrelay.Relay)(nil), // 234: xatu.mevrelay.Relay - (*wrapperspb.Int64Value)(nil), // 235: google.protobuf.Int64Value + (*ClientMeta_AdditionalEthV1EventsExecutionPayloadData)(nil), // 74: xatu.ClientMeta.AdditionalEthV1EventsExecutionPayloadData + (*ClientMeta_AdditionalEthV1EventsPayloadAttestationData)(nil), // 75: xatu.ClientMeta.AdditionalEthV1EventsPayloadAttestationData + (*ClientMeta_AdditionalEthV1EventsExecutionPayloadBidData)(nil), // 76: xatu.ClientMeta.AdditionalEthV1EventsExecutionPayloadBidData + (*ClientMeta_AdditionalEthV1EventsProposerPreferencesData)(nil), // 77: xatu.ClientMeta.AdditionalEthV1EventsProposerPreferencesData + (*ClientMeta_AdditionalEthV2BeaconBlockPayloadAttestationData)(nil), // 78: xatu.ClientMeta.AdditionalEthV2BeaconBlockPayloadAttestationData + (*ClientMeta_AdditionalEthV2BeaconBlockExecutionPayloadBidData)(nil), // 79: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionPayloadBidData + (*ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData)(nil), // 80: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData + (*ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData)(nil), // 81: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadBidData + (*ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData)(nil), // 82: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData + (*ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData)(nil), // 83: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubProposerPreferencesData + (*ClientMeta_AttestationDataSnapshot)(nil), // 84: xatu.ClientMeta.AttestationDataSnapshot + (*ClientMeta_AdditionalEthV1ValidatorAttestationDataData)(nil), // 85: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData + (*ClientMeta_AdditionalEthV1EventsBlobSidecarData)(nil), // 86: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData + (*ClientMeta_AdditionalEthV1EventsDataColumnSidecarData)(nil), // 87: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData + (*ClientMeta_AdditionalEthV1BeaconBlobSidecarData)(nil), // 88: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData + (*ClientMeta_AdditionalBeaconP2PAttestationData)(nil), // 89: xatu.ClientMeta.AdditionalBeaconP2PAttestationData + (*ClientMeta_AdditionalEthV1ProposerDutyData)(nil), // 90: xatu.ClientMeta.AdditionalEthV1ProposerDutyData + (*ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData)(nil), // 91: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData + (*ClientMeta_AdditionalLibP2PTraceAddPeerData)(nil), // 92: xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData + (*ClientMeta_AdditionalLibP2PTraceRemovePeerData)(nil), // 93: xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData + (*ClientMeta_AdditionalLibP2PTraceRecvRPCData)(nil), // 94: xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData + (*ClientMeta_AdditionalLibP2PTraceSendRPCData)(nil), // 95: xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData + (*ClientMeta_AdditionalLibP2PTraceDropRPCData)(nil), // 96: xatu.ClientMeta.AdditionalLibP2PTraceDropRPCData + (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData)(nil), // 97: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIHaveData + (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData)(nil), // 98: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIWantData + (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData)(nil), // 99: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIDontWantData + (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData)(nil), // 100: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlGraftData + (*ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData)(nil), // 101: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlPruneData + (*ClientMeta_AdditionalLibP2PTraceJoinData)(nil), // 102: xatu.ClientMeta.AdditionalLibP2PTraceJoinData + (*ClientMeta_AdditionalLibP2PTraceLeaveData)(nil), // 103: xatu.ClientMeta.AdditionalLibP2PTraceLeaveData + (*ClientMeta_AdditionalLibP2PTraceGraftData)(nil), // 104: xatu.ClientMeta.AdditionalLibP2PTraceGraftData + (*ClientMeta_AdditionalLibP2PTracePruneData)(nil), // 105: xatu.ClientMeta.AdditionalLibP2PTracePruneData + (*ClientMeta_AdditionalLibP2PTraceDuplicateMessageData)(nil), // 106: xatu.ClientMeta.AdditionalLibP2PTraceDuplicateMessageData + (*ClientMeta_AdditionalLibP2PTraceDeliverMessageData)(nil), // 107: xatu.ClientMeta.AdditionalLibP2PTraceDeliverMessageData + (*ClientMeta_AdditionalLibP2PTracePublishMessageData)(nil), // 108: xatu.ClientMeta.AdditionalLibP2PTracePublishMessageData + (*ClientMeta_AdditionalLibP2PTraceRejectMessageData)(nil), // 109: xatu.ClientMeta.AdditionalLibP2PTraceRejectMessageData + (*ClientMeta_AdditionalLibP2PTraceConnectedData)(nil), // 110: xatu.ClientMeta.AdditionalLibP2PTraceConnectedData + (*ClientMeta_AdditionalLibP2PTraceDisconnectedData)(nil), // 111: xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData + (*ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData)(nil), // 112: xatu.ClientMeta.AdditionalLibP2PTraceSyntheticHeartbeatData + (*ClientMeta_AdditionalLibP2PTraceHandleMetadataData)(nil), // 113: xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData + (*ClientMeta_AdditionalLibP2PTraceHandleStatusData)(nil), // 114: xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData + (*ClientMeta_AdditionalLibP2PTraceIdentifyData)(nil), // 115: xatu.ClientMeta.AdditionalLibP2PTraceIdentifyData + (*ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData)(nil), // 116: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData + (*ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData)(nil), // 117: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaSubscriptionData + (*ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData)(nil), // 118: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaMessageData + (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData)(nil), // 119: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData + (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData)(nil), // 120: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData + (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData)(nil), // 121: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData + (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData)(nil), // 122: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData + (*ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData)(nil), // 123: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData + (*ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData)(nil), // 124: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData + (*ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData)(nil), // 125: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData + (*ClientMeta_AdditionalEthV1ValidatorsData)(nil), // 126: xatu.ClientMeta.AdditionalEthV1ValidatorsData + (*ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData)(nil), // 127: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData + (*ClientMeta_AdditionalMevRelayPayloadDeliveredData)(nil), // 128: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData + (*ClientMeta_AdditionalEthV3ValidatorBlockData)(nil), // 129: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData + (*ClientMeta_AdditionalMevRelayValidatorRegistrationData)(nil), // 130: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData + (*ClientMeta_AdditionalNodeRecordConsensusData)(nil), // 131: xatu.ClientMeta.AdditionalNodeRecordConsensusData + (*ClientMeta_AdditionalConsensusEngineAPINewPayloadData)(nil), // 132: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData + (*ClientMeta_AdditionalConsensusEngineAPIGetBlobsData)(nil), // 133: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData + (*ClientMeta_AdditionalEthV1BeaconBlobData)(nil), // 134: xatu.ClientMeta.AdditionalEthV1BeaconBlobData + (*ClientMeta_Ethereum_Network)(nil), // 135: xatu.ClientMeta.Ethereum.Network + (*ClientMeta_Ethereum_Execution)(nil), // 136: xatu.ClientMeta.Ethereum.Execution + (*ClientMeta_Ethereum_Consensus)(nil), // 137: xatu.ClientMeta.Ethereum.Consensus + (*ServerMeta_Event)(nil), // 138: xatu.ServerMeta.Event + (*ServerMeta_Geo)(nil), // 139: xatu.ServerMeta.Geo + (*ServerMeta_Client)(nil), // 140: xatu.ServerMeta.Client + (*ServerMeta_Peer)(nil), // 141: xatu.ServerMeta.Peer + (*ServerMeta_AdditionalBeaconP2PAttestationData)(nil), // 142: xatu.ServerMeta.AdditionalBeaconP2PAttestationData + (*ServerMeta_AdditionalLibp2PTraceConnectedData)(nil), // 143: xatu.ServerMeta.AdditionalLibp2PTraceConnectedData + (*ServerMeta_AdditionalLibp2PTraceDisconnectedData)(nil), // 144: xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData + (*ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData)(nil), // 145: xatu.ServerMeta.AdditionalLibP2PTraceSyntheticHeartbeatData + (*ServerMeta_AdditionalLibp2PTraceIdentifyData)(nil), // 146: xatu.ServerMeta.AdditionalLibp2PTraceIdentifyData + (*ServerMeta_AdditionalNodeRecordConsensusData)(nil), // 147: xatu.ServerMeta.AdditionalNodeRecordConsensusData + (*ServerMeta_AdditionalNodeRecordExecutionData)(nil), // 148: xatu.ServerMeta.AdditionalNodeRecordExecutionData + (*ExecutionBlockMetrics_StateReads)(nil), // 149: xatu.ExecutionBlockMetrics.StateReads + (*ExecutionBlockMetrics_StateWrites)(nil), // 150: xatu.ExecutionBlockMetrics.StateWrites + (*ExecutionBlockMetrics_CacheEntry)(nil), // 151: xatu.ExecutionBlockMetrics.CacheEntry + (*ExecutionBlockMetrics_CodeCacheEntry)(nil), // 152: xatu.ExecutionBlockMetrics.CodeCacheEntry + (*wrapperspb.UInt64Value)(nil), // 153: google.protobuf.UInt64Value + (*timestamppb.Timestamp)(nil), // 154: google.protobuf.Timestamp + (*v1.ForkChoice)(nil), // 155: xatu.eth.v1.ForkChoice + (*v1.EventChainReorg)(nil), // 156: xatu.eth.v1.EventChainReorg + (*v1.ForkChoiceV2)(nil), // 157: xatu.eth.v1.ForkChoiceV2 + (*v1.EventChainReorgV2)(nil), // 158: xatu.eth.v1.EventChainReorgV2 + (*v1.Validator)(nil), // 159: xatu.eth.v1.Validator + (*v1.SyncCommittee)(nil), // 160: xatu.eth.v1.SyncCommittee + (*wrapperspb.UInt32Value)(nil), // 161: google.protobuf.UInt32Value + (ModuleName)(0), // 162: xatu.ModuleName + (*wrapperspb.DoubleValue)(nil), // 163: google.protobuf.DoubleValue + (*v1.Attestation)(nil), // 164: xatu.eth.v1.Attestation + (*v1.EventBlock)(nil), // 165: xatu.eth.v1.EventBlock + (*v1.EventFinalizedCheckpoint)(nil), // 166: xatu.eth.v1.EventFinalizedCheckpoint + (*v1.EventHead)(nil), // 167: xatu.eth.v1.EventHead + (*v1.EventVoluntaryExit)(nil), // 168: xatu.eth.v1.EventVoluntaryExit + (*v1.EventContributionAndProof)(nil), // 169: xatu.eth.v1.EventContributionAndProof + (*v2.EventBlock)(nil), // 170: xatu.eth.v2.EventBlock + (*v1.Committee)(nil), // 171: xatu.eth.v1.Committee + (*v1.AttestationDataV2)(nil), // 172: xatu.eth.v1.AttestationDataV2 + (*v1.AttestationV2)(nil), // 173: xatu.eth.v1.AttestationV2 + (*v1.EventBlockV2)(nil), // 174: xatu.eth.v1.EventBlockV2 + (*v1.EventFinalizedCheckpointV2)(nil), // 175: xatu.eth.v1.EventFinalizedCheckpointV2 + (*v1.EventHeadV2)(nil), // 176: xatu.eth.v1.EventHeadV2 + (*v1.EventVoluntaryExitV2)(nil), // 177: xatu.eth.v1.EventVoluntaryExitV2 + (*v1.EventContributionAndProofV2)(nil), // 178: xatu.eth.v1.EventContributionAndProofV2 + (*v2.EventBlockV2)(nil), // 179: xatu.eth.v2.EventBlockV2 + (*v1.AttesterSlashingV2)(nil), // 180: xatu.eth.v1.AttesterSlashingV2 + (*v1.ProposerSlashingV2)(nil), // 181: xatu.eth.v1.ProposerSlashingV2 + (*v1.SignedVoluntaryExitV2)(nil), // 182: xatu.eth.v1.SignedVoluntaryExitV2 + (*v1.DepositV2)(nil), // 183: xatu.eth.v1.DepositV2 + (*v2.SignedBLSToExecutionChangeV2)(nil), // 184: xatu.eth.v2.SignedBLSToExecutionChangeV2 + (*v1.Transaction)(nil), // 185: xatu.eth.v1.Transaction + (*v1.WithdrawalV2)(nil), // 186: xatu.eth.v1.WithdrawalV2 + (*v1.EventBlobSidecar)(nil), // 187: xatu.eth.v1.EventBlobSidecar + (*v1.BlobSidecar)(nil), // 188: xatu.eth.v1.BlobSidecar + (*v1.ProposerDuty)(nil), // 189: xatu.eth.v1.ProposerDuty + (*v1.ElaboratedAttestation)(nil), // 190: xatu.eth.v1.ElaboratedAttestation + (*libp2p.AddPeer)(nil), // 191: xatu.libp2p.AddPeer + (*libp2p.RemovePeer)(nil), // 192: xatu.libp2p.RemovePeer + (*libp2p.RecvRPC)(nil), // 193: xatu.libp2p.RecvRPC + (*libp2p.SendRPC)(nil), // 194: xatu.libp2p.SendRPC + (*libp2p.Join)(nil), // 195: xatu.libp2p.Join + (*libp2p.Connected)(nil), // 196: xatu.libp2p.Connected + (*libp2p.Disconnected)(nil), // 197: xatu.libp2p.Disconnected + (*libp2p.HandleMetadata)(nil), // 198: xatu.libp2p.HandleMetadata + (*libp2p.HandleStatus)(nil), // 199: xatu.libp2p.HandleStatus + (*gossipsub.BeaconBlock)(nil), // 200: xatu.libp2p.gossipsub.eth.BeaconBlock + (*gossipsub.BlobSidecar)(nil), // 201: xatu.libp2p.gossipsub.eth.BlobSidecar + (*mevrelay.BidTrace)(nil), // 202: xatu.mevrelay.BidTrace + (*mevrelay.ProposerPayloadDelivered)(nil), // 203: xatu.mevrelay.ProposerPayloadDelivered + (*mevrelay.ValidatorRegistration)(nil), // 204: xatu.mevrelay.ValidatorRegistration + (*v1.EventBlockGossip)(nil), // 205: xatu.eth.v1.EventBlockGossip + (*libp2p.DropRPC)(nil), // 206: xatu.libp2p.DropRPC + (*libp2p.Leave)(nil), // 207: xatu.libp2p.Leave + (*libp2p.Graft)(nil), // 208: xatu.libp2p.Graft + (*libp2p.Prune)(nil), // 209: xatu.libp2p.Prune + (*libp2p.DuplicateMessage)(nil), // 210: xatu.libp2p.DuplicateMessage + (*libp2p.DeliverMessage)(nil), // 211: xatu.libp2p.DeliverMessage + (*libp2p.PublishMessage)(nil), // 212: xatu.libp2p.PublishMessage + (*libp2p.RejectMessage)(nil), // 213: xatu.libp2p.RejectMessage + (*libp2p.ControlIHaveMetaItem)(nil), // 214: xatu.libp2p.ControlIHaveMetaItem + (*libp2p.ControlIWantMetaItem)(nil), // 215: xatu.libp2p.ControlIWantMetaItem + (*libp2p.ControlIDontWantMetaItem)(nil), // 216: xatu.libp2p.ControlIDontWantMetaItem + (*libp2p.ControlGraftMetaItem)(nil), // 217: xatu.libp2p.ControlGraftMetaItem + (*libp2p.ControlPruneMetaItem)(nil), // 218: xatu.libp2p.ControlPruneMetaItem + (*libp2p.SubMetaItem)(nil), // 219: xatu.libp2p.SubMetaItem + (*libp2p.MessageMetaItem)(nil), // 220: xatu.libp2p.MessageMetaItem + (*noderecord.Consensus)(nil), // 221: xatu.noderecord.Consensus + (*noderecord.Execution)(nil), // 222: xatu.noderecord.Execution + (*v1.SignedAggregateAttestationAndProofV2)(nil), // 223: xatu.eth.v1.SignedAggregateAttestationAndProofV2 + (*v1.EventDataColumnSidecar)(nil), // 224: xatu.eth.v1.EventDataColumnSidecar + (*gossipsub.DataColumnSidecar)(nil), // 225: xatu.libp2p.gossipsub.eth.DataColumnSidecar + (*libp2p.SyntheticHeartbeat)(nil), // 226: xatu.libp2p.SyntheticHeartbeat + (*libp2p.Identify)(nil), // 227: xatu.libp2p.Identify + (*libp2p.DataColumnCustodyProbe)(nil), // 228: xatu.libp2p.DataColumnCustodyProbe + (*v1.Blob)(nil), // 229: xatu.eth.v1.Blob + (*v1.BlockAccessListChange)(nil), // 230: xatu.eth.v1.BlockAccessListChange + (*v1.SignedExecutionPayloadEnvelope)(nil), // 231: xatu.eth.v1.SignedExecutionPayloadEnvelope + (*v1.PayloadAttestationMessage)(nil), // 232: xatu.eth.v1.PayloadAttestationMessage + (*v1.SignedExecutionPayloadBid)(nil), // 233: xatu.eth.v1.SignedExecutionPayloadBid + (*v1.SignedProposerPreferences)(nil), // 234: xatu.eth.v1.SignedProposerPreferences + (*v1.PayloadAttestation)(nil), // 235: xatu.eth.v1.PayloadAttestation + (*gossipsub.ExecutionPayloadEnvelope)(nil), // 236: xatu.libp2p.gossipsub.eth.ExecutionPayloadEnvelope + (*gossipsub.ExecutionPayloadBid)(nil), // 237: xatu.libp2p.gossipsub.eth.ExecutionPayloadBid + (*gossipsub.PayloadAttestationMessage)(nil), // 238: xatu.libp2p.gossipsub.eth.PayloadAttestationMessage + (*gossipsub.ProposerPreferences)(nil), // 239: xatu.libp2p.gossipsub.eth.ProposerPreferences + (*libp2p.TraceEventMetadata)(nil), // 240: xatu.libp2p.TraceEventMetadata + (*wrapperspb.StringValue)(nil), // 241: google.protobuf.StringValue + (*libp2p.Peer)(nil), // 242: xatu.libp2p.Peer + (*wrapperspb.BoolValue)(nil), // 243: google.protobuf.BoolValue + (*mevrelay.Relay)(nil), // 244: xatu.mevrelay.Relay + (*wrapperspb.Int64Value)(nil), // 245: google.protobuf.Int64Value } var file_pkg_proto_xatu_event_ingester_proto_depIdxs = []int32{ 29, // 0: xatu.CreateEventsRequest.events:type_name -> xatu.DecoratedEvent - 143, // 1: xatu.CreateEventsResponse.events_ingested:type_name -> google.protobuf.UInt64Value - 144, // 2: xatu.Epoch.start_date_time:type_name -> google.protobuf.Timestamp - 143, // 3: xatu.EpochV2.number:type_name -> google.protobuf.UInt64Value - 144, // 4: xatu.EpochV2.start_date_time:type_name -> google.protobuf.Timestamp - 144, // 5: xatu.Slot.start_date_time:type_name -> google.protobuf.Timestamp - 143, // 6: xatu.SlotV2.number:type_name -> google.protobuf.UInt64Value - 144, // 7: xatu.SlotV2.start_date_time:type_name -> google.protobuf.Timestamp - 143, // 8: xatu.PropagationV2.slot_start_diff:type_name -> google.protobuf.UInt64Value - 143, // 9: xatu.AttestingValidatorV2.committee_index:type_name -> google.protobuf.UInt64Value - 143, // 10: xatu.AttestingValidatorV2.index:type_name -> google.protobuf.UInt64Value - 145, // 11: xatu.DebugForkChoiceReorg.before:type_name -> xatu.eth.v1.ForkChoice - 145, // 12: xatu.DebugForkChoiceReorg.after:type_name -> xatu.eth.v1.ForkChoice - 146, // 13: xatu.DebugForkChoiceReorg.event:type_name -> xatu.eth.v1.EventChainReorg - 147, // 14: xatu.DebugForkChoiceReorgV2.before:type_name -> xatu.eth.v1.ForkChoiceV2 - 147, // 15: xatu.DebugForkChoiceReorgV2.after:type_name -> xatu.eth.v1.ForkChoiceV2 - 148, // 16: xatu.DebugForkChoiceReorgV2.event:type_name -> xatu.eth.v1.EventChainReorgV2 - 149, // 17: xatu.Validators.validators:type_name -> xatu.eth.v1.Validator - 150, // 18: xatu.SyncCommitteeData.sync_committee:type_name -> xatu.eth.v1.SyncCommittee - 143, // 19: xatu.SyncAggregateData.validators_participated:type_name -> google.protobuf.UInt64Value - 143, // 20: xatu.SyncAggregateData.validators_missed:type_name -> google.protobuf.UInt64Value - 143, // 21: xatu.SyncAggregateData.participation_count:type_name -> google.protobuf.UInt64Value + 153, // 1: xatu.CreateEventsResponse.events_ingested:type_name -> google.protobuf.UInt64Value + 154, // 2: xatu.Epoch.start_date_time:type_name -> google.protobuf.Timestamp + 153, // 3: xatu.EpochV2.number:type_name -> google.protobuf.UInt64Value + 154, // 4: xatu.EpochV2.start_date_time:type_name -> google.protobuf.Timestamp + 154, // 5: xatu.Slot.start_date_time:type_name -> google.protobuf.Timestamp + 153, // 6: xatu.SlotV2.number:type_name -> google.protobuf.UInt64Value + 154, // 7: xatu.SlotV2.start_date_time:type_name -> google.protobuf.Timestamp + 153, // 8: xatu.PropagationV2.slot_start_diff:type_name -> google.protobuf.UInt64Value + 153, // 9: xatu.AttestingValidatorV2.committee_index:type_name -> google.protobuf.UInt64Value + 153, // 10: xatu.AttestingValidatorV2.index:type_name -> google.protobuf.UInt64Value + 155, // 11: xatu.DebugForkChoiceReorg.before:type_name -> xatu.eth.v1.ForkChoice + 155, // 12: xatu.DebugForkChoiceReorg.after:type_name -> xatu.eth.v1.ForkChoice + 156, // 13: xatu.DebugForkChoiceReorg.event:type_name -> xatu.eth.v1.EventChainReorg + 157, // 14: xatu.DebugForkChoiceReorgV2.before:type_name -> xatu.eth.v1.ForkChoiceV2 + 157, // 15: xatu.DebugForkChoiceReorgV2.after:type_name -> xatu.eth.v1.ForkChoiceV2 + 158, // 16: xatu.DebugForkChoiceReorgV2.event:type_name -> xatu.eth.v1.EventChainReorgV2 + 159, // 17: xatu.Validators.validators:type_name -> xatu.eth.v1.Validator + 160, // 18: xatu.SyncCommitteeData.sync_committee:type_name -> xatu.eth.v1.SyncCommittee + 153, // 19: xatu.SyncAggregateData.validators_participated:type_name -> google.protobuf.UInt64Value + 153, // 20: xatu.SyncAggregateData.validators_missed:type_name -> google.protobuf.UInt64Value + 153, // 21: xatu.SyncAggregateData.participation_count:type_name -> google.protobuf.UInt64Value 5, // 22: xatu.BlockIdentifier.epoch:type_name -> xatu.EpochV2 7, // 23: xatu.BlockIdentifier.slot:type_name -> xatu.SlotV2 - 144, // 24: xatu.ConsensusEngineAPINewPayload.requested_at:type_name -> google.protobuf.Timestamp - 143, // 25: xatu.ConsensusEngineAPINewPayload.duration_ms:type_name -> google.protobuf.UInt64Value - 143, // 26: xatu.ConsensusEngineAPINewPayload.slot:type_name -> google.protobuf.UInt64Value - 143, // 27: xatu.ConsensusEngineAPINewPayload.proposer_index:type_name -> google.protobuf.UInt64Value - 143, // 28: xatu.ConsensusEngineAPINewPayload.block_number:type_name -> google.protobuf.UInt64Value - 143, // 29: xatu.ConsensusEngineAPINewPayload.gas_used:type_name -> google.protobuf.UInt64Value - 143, // 30: xatu.ConsensusEngineAPINewPayload.gas_limit:type_name -> google.protobuf.UInt64Value - 151, // 31: xatu.ConsensusEngineAPINewPayload.tx_count:type_name -> google.protobuf.UInt32Value - 151, // 32: xatu.ConsensusEngineAPINewPayload.blob_count:type_name -> google.protobuf.UInt32Value - 144, // 33: xatu.ConsensusEngineAPIGetBlobs.requested_at:type_name -> google.protobuf.Timestamp - 143, // 34: xatu.ConsensusEngineAPIGetBlobs.duration_ms:type_name -> google.protobuf.UInt64Value - 143, // 35: xatu.ConsensusEngineAPIGetBlobs.slot:type_name -> google.protobuf.UInt64Value - 151, // 36: xatu.ConsensusEngineAPIGetBlobs.requested_count:type_name -> google.protobuf.UInt32Value - 151, // 37: xatu.ConsensusEngineAPIGetBlobs.returned_count:type_name -> google.protobuf.UInt32Value + 154, // 24: xatu.ConsensusEngineAPINewPayload.requested_at:type_name -> google.protobuf.Timestamp + 153, // 25: xatu.ConsensusEngineAPINewPayload.duration_ms:type_name -> google.protobuf.UInt64Value + 153, // 26: xatu.ConsensusEngineAPINewPayload.slot:type_name -> google.protobuf.UInt64Value + 153, // 27: xatu.ConsensusEngineAPINewPayload.proposer_index:type_name -> google.protobuf.UInt64Value + 153, // 28: xatu.ConsensusEngineAPINewPayload.block_number:type_name -> google.protobuf.UInt64Value + 153, // 29: xatu.ConsensusEngineAPINewPayload.gas_used:type_name -> google.protobuf.UInt64Value + 153, // 30: xatu.ConsensusEngineAPINewPayload.gas_limit:type_name -> google.protobuf.UInt64Value + 161, // 31: xatu.ConsensusEngineAPINewPayload.tx_count:type_name -> google.protobuf.UInt32Value + 161, // 32: xatu.ConsensusEngineAPINewPayload.blob_count:type_name -> google.protobuf.UInt32Value + 154, // 33: xatu.ConsensusEngineAPIGetBlobs.requested_at:type_name -> google.protobuf.Timestamp + 153, // 34: xatu.ConsensusEngineAPIGetBlobs.duration_ms:type_name -> google.protobuf.UInt64Value + 153, // 35: xatu.ConsensusEngineAPIGetBlobs.slot:type_name -> google.protobuf.UInt64Value + 161, // 36: xatu.ConsensusEngineAPIGetBlobs.requested_count:type_name -> google.protobuf.UInt32Value + 161, // 37: xatu.ConsensusEngineAPIGetBlobs.returned_count:type_name -> google.protobuf.UInt32Value 0, // 38: xatu.ExecutionEngineNewPayload.source:type_name -> xatu.EngineSource - 144, // 39: xatu.ExecutionEngineNewPayload.requested_at:type_name -> google.protobuf.Timestamp - 143, // 40: xatu.ExecutionEngineNewPayload.duration_ms:type_name -> google.protobuf.UInt64Value - 143, // 41: xatu.ExecutionEngineNewPayload.block_number:type_name -> google.protobuf.UInt64Value - 143, // 42: xatu.ExecutionEngineNewPayload.gas_used:type_name -> google.protobuf.UInt64Value - 143, // 43: xatu.ExecutionEngineNewPayload.gas_limit:type_name -> google.protobuf.UInt64Value - 151, // 44: xatu.ExecutionEngineNewPayload.tx_count:type_name -> google.protobuf.UInt32Value - 151, // 45: xatu.ExecutionEngineNewPayload.blob_count:type_name -> google.protobuf.UInt32Value + 154, // 39: xatu.ExecutionEngineNewPayload.requested_at:type_name -> google.protobuf.Timestamp + 153, // 40: xatu.ExecutionEngineNewPayload.duration_ms:type_name -> google.protobuf.UInt64Value + 153, // 41: xatu.ExecutionEngineNewPayload.block_number:type_name -> google.protobuf.UInt64Value + 153, // 42: xatu.ExecutionEngineNewPayload.gas_used:type_name -> google.protobuf.UInt64Value + 153, // 43: xatu.ExecutionEngineNewPayload.gas_limit:type_name -> google.protobuf.UInt64Value + 161, // 44: xatu.ExecutionEngineNewPayload.tx_count:type_name -> google.protobuf.UInt32Value + 161, // 45: xatu.ExecutionEngineNewPayload.blob_count:type_name -> google.protobuf.UInt32Value 0, // 46: xatu.ExecutionEngineGetBlobs.source:type_name -> xatu.EngineSource - 144, // 47: xatu.ExecutionEngineGetBlobs.requested_at:type_name -> google.protobuf.Timestamp - 143, // 48: xatu.ExecutionEngineGetBlobs.duration_ms:type_name -> google.protobuf.UInt64Value - 151, // 49: xatu.ExecutionEngineGetBlobs.requested_count:type_name -> google.protobuf.UInt32Value - 151, // 50: xatu.ExecutionEngineGetBlobs.returned_count:type_name -> google.protobuf.UInt32Value - 151, // 51: xatu.ExecutionEngineGetBlobs.returned_blob_indexes:type_name -> google.protobuf.UInt32Value + 154, // 47: xatu.ExecutionEngineGetBlobs.requested_at:type_name -> google.protobuf.Timestamp + 153, // 48: xatu.ExecutionEngineGetBlobs.duration_ms:type_name -> google.protobuf.UInt64Value + 161, // 49: xatu.ExecutionEngineGetBlobs.requested_count:type_name -> google.protobuf.UInt32Value + 161, // 50: xatu.ExecutionEngineGetBlobs.returned_count:type_name -> google.protobuf.UInt32Value + 161, // 51: xatu.ExecutionEngineGetBlobs.returned_blob_indexes:type_name -> google.protobuf.UInt32Value 30, // 52: xatu.ClientMeta.ethereum:type_name -> xatu.ClientMeta.Ethereum 31, // 53: xatu.ClientMeta.labels:type_name -> xatu.ClientMeta.LabelsEntry 36, // 54: xatu.ClientMeta.eth_v1_events_attestation:type_name -> xatu.ClientMeta.AdditionalEthV1EventsAttestationData @@ -16982,7 +18242,7 @@ var file_pkg_proto_xatu_event_ingester_proto_depIdxs = []int32{ 55, // 63: xatu.ClientMeta.eth_v1_debug_fork_choice:type_name -> xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData 57, // 64: xatu.ClientMeta.eth_v1_debug_fork_choice_reorg:type_name -> xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData 59, // 65: xatu.ClientMeta.eth_v1_beacon_committee:type_name -> xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData - 75, // 66: xatu.ClientMeta.eth_v1_validator_attestation_data:type_name -> xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData + 85, // 66: xatu.ClientMeta.eth_v1_validator_attestation_data:type_name -> xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData 37, // 67: xatu.ClientMeta.eth_v1_events_attestation_v2:type_name -> xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data 39, // 68: xatu.ClientMeta.eth_v1_events_head_v2:type_name -> xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data 41, // 69: xatu.ClientMeta.eth_v1_events_block_v2:type_name -> xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data @@ -17001,471 +18261,531 @@ var file_pkg_proto_xatu_event_ingester_proto_depIdxs = []int32{ 70, // 82: xatu.ClientMeta.eth_v2_beacon_block_bls_to_execution_change:type_name -> xatu.ClientMeta.AdditionalEthV2BeaconBlockBLSToExecutionChangeData 71, // 83: xatu.ClientMeta.eth_v2_beacon_block_execution_transaction:type_name -> xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData 72, // 84: xatu.ClientMeta.eth_v2_beacon_block_withdrawal:type_name -> xatu.ClientMeta.AdditionalEthV2BeaconBlockWithdrawalData - 76, // 85: xatu.ClientMeta.eth_v1_events_blob_sidecar:type_name -> xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData - 78, // 86: xatu.ClientMeta.eth_v1_beacon_blob_sidecar:type_name -> xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData - 79, // 87: xatu.ClientMeta.beacon_p2p_attestation:type_name -> xatu.ClientMeta.AdditionalBeaconP2PAttestationData - 80, // 88: xatu.ClientMeta.eth_v1_proposer_duty:type_name -> xatu.ClientMeta.AdditionalEthV1ProposerDutyData - 81, // 89: xatu.ClientMeta.eth_v2_beacon_block_elaborated_attestation:type_name -> xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData - 82, // 90: xatu.ClientMeta.libp2p_trace_add_peer:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData - 83, // 91: xatu.ClientMeta.libp2p_trace_remove_peer:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData - 84, // 92: xatu.ClientMeta.libp2p_trace_recv_rpc:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData - 85, // 93: xatu.ClientMeta.libp2p_trace_send_rpc:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData - 92, // 94: xatu.ClientMeta.libp2p_trace_join:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceJoinData - 100, // 95: xatu.ClientMeta.libp2p_trace_connected:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceConnectedData - 101, // 96: xatu.ClientMeta.libp2p_trace_disconnected:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData - 103, // 97: xatu.ClientMeta.libp2p_trace_handle_metadata:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData - 104, // 98: xatu.ClientMeta.libp2p_trace_handle_status:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData - 109, // 99: xatu.ClientMeta.libp2p_trace_gossipsub_beacon_block:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData - 112, // 100: xatu.ClientMeta.libp2p_trace_gossipsub_beacon_attestation:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData - 114, // 101: xatu.ClientMeta.libp2p_trace_gossipsub_blob_sidecar:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData - 116, // 102: xatu.ClientMeta.eth_v1_validators:type_name -> xatu.ClientMeta.AdditionalEthV1ValidatorsData - 117, // 103: xatu.ClientMeta.mev_relay_bid_trace_builder_block_submission:type_name -> xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData - 118, // 104: xatu.ClientMeta.mev_relay_payload_delivered:type_name -> xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData - 119, // 105: xatu.ClientMeta.eth_v3_validator_block:type_name -> xatu.ClientMeta.AdditionalEthV3ValidatorBlockData - 120, // 106: xatu.ClientMeta.mev_relay_validator_registration:type_name -> xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData + 86, // 85: xatu.ClientMeta.eth_v1_events_blob_sidecar:type_name -> xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData + 88, // 86: xatu.ClientMeta.eth_v1_beacon_blob_sidecar:type_name -> xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData + 89, // 87: xatu.ClientMeta.beacon_p2p_attestation:type_name -> xatu.ClientMeta.AdditionalBeaconP2PAttestationData + 90, // 88: xatu.ClientMeta.eth_v1_proposer_duty:type_name -> xatu.ClientMeta.AdditionalEthV1ProposerDutyData + 91, // 89: xatu.ClientMeta.eth_v2_beacon_block_elaborated_attestation:type_name -> xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData + 92, // 90: xatu.ClientMeta.libp2p_trace_add_peer:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData + 93, // 91: xatu.ClientMeta.libp2p_trace_remove_peer:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData + 94, // 92: xatu.ClientMeta.libp2p_trace_recv_rpc:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData + 95, // 93: xatu.ClientMeta.libp2p_trace_send_rpc:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData + 102, // 94: xatu.ClientMeta.libp2p_trace_join:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceJoinData + 110, // 95: xatu.ClientMeta.libp2p_trace_connected:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceConnectedData + 111, // 96: xatu.ClientMeta.libp2p_trace_disconnected:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData + 113, // 97: xatu.ClientMeta.libp2p_trace_handle_metadata:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData + 114, // 98: xatu.ClientMeta.libp2p_trace_handle_status:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData + 119, // 99: xatu.ClientMeta.libp2p_trace_gossipsub_beacon_block:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData + 122, // 100: xatu.ClientMeta.libp2p_trace_gossipsub_beacon_attestation:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData + 124, // 101: xatu.ClientMeta.libp2p_trace_gossipsub_blob_sidecar:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData + 126, // 102: xatu.ClientMeta.eth_v1_validators:type_name -> xatu.ClientMeta.AdditionalEthV1ValidatorsData + 127, // 103: xatu.ClientMeta.mev_relay_bid_trace_builder_block_submission:type_name -> xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData + 128, // 104: xatu.ClientMeta.mev_relay_payload_delivered:type_name -> xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData + 129, // 105: xatu.ClientMeta.eth_v3_validator_block:type_name -> xatu.ClientMeta.AdditionalEthV3ValidatorBlockData + 130, // 106: xatu.ClientMeta.mev_relay_validator_registration:type_name -> xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData 42, // 107: xatu.ClientMeta.eth_v1_events_block_gossip:type_name -> xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData - 86, // 108: xatu.ClientMeta.libp2p_trace_drop_rpc:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceDropRPCData - 93, // 109: xatu.ClientMeta.libp2p_trace_leave:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceLeaveData - 94, // 110: xatu.ClientMeta.libp2p_trace_graft:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGraftData - 95, // 111: xatu.ClientMeta.libp2p_trace_prune:type_name -> xatu.ClientMeta.AdditionalLibP2PTracePruneData - 96, // 112: xatu.ClientMeta.libp2p_trace_duplicate_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceDuplicateMessageData - 97, // 113: xatu.ClientMeta.libp2p_trace_deliver_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceDeliverMessageData - 98, // 114: xatu.ClientMeta.libp2p_trace_publish_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTracePublishMessageData - 99, // 115: xatu.ClientMeta.libp2p_trace_reject_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRejectMessageData - 87, // 116: xatu.ClientMeta.libp2p_trace_rpc_meta_control_ihave:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIHaveData - 88, // 117: xatu.ClientMeta.libp2p_trace_rpc_meta_control_iwant:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIWantData - 89, // 118: xatu.ClientMeta.libp2p_trace_rpc_meta_control_idontwant:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIDontWantData - 90, // 119: xatu.ClientMeta.libp2p_trace_rpc_meta_control_graft:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlGraftData - 91, // 120: xatu.ClientMeta.libp2p_trace_rpc_meta_control_prune:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlPruneData - 107, // 121: xatu.ClientMeta.libp2p_trace_rpc_meta_subscription:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaSubscriptionData - 108, // 122: xatu.ClientMeta.libp2p_trace_rpc_meta_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaMessageData - 121, // 123: xatu.ClientMeta.node_record_consensus:type_name -> xatu.ClientMeta.AdditionalNodeRecordConsensusData - 113, // 124: xatu.ClientMeta.libp2p_trace_gossipsub_aggregate_and_proof:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData - 77, // 125: xatu.ClientMeta.eth_v1_events_data_column_sidecar:type_name -> xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData - 115, // 126: xatu.ClientMeta.libp2p_trace_gossipsub_data_column_sidecar:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData - 102, // 127: xatu.ClientMeta.libp2p_trace_synthetic_heartbeat:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceSyntheticHeartbeatData - 106, // 128: xatu.ClientMeta.libp2p_trace_rpc_data_column_custody_probe:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData - 122, // 129: xatu.ClientMeta.consensus_engine_api_new_payload:type_name -> xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData - 123, // 130: xatu.ClientMeta.consensus_engine_api_get_blobs:type_name -> xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData - 124, // 131: xatu.ClientMeta.eth_v1_beacon_blob:type_name -> xatu.ClientMeta.AdditionalEthV1BeaconBlobData + 96, // 108: xatu.ClientMeta.libp2p_trace_drop_rpc:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceDropRPCData + 103, // 109: xatu.ClientMeta.libp2p_trace_leave:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceLeaveData + 104, // 110: xatu.ClientMeta.libp2p_trace_graft:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGraftData + 105, // 111: xatu.ClientMeta.libp2p_trace_prune:type_name -> xatu.ClientMeta.AdditionalLibP2PTracePruneData + 106, // 112: xatu.ClientMeta.libp2p_trace_duplicate_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceDuplicateMessageData + 107, // 113: xatu.ClientMeta.libp2p_trace_deliver_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceDeliverMessageData + 108, // 114: xatu.ClientMeta.libp2p_trace_publish_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTracePublishMessageData + 109, // 115: xatu.ClientMeta.libp2p_trace_reject_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRejectMessageData + 97, // 116: xatu.ClientMeta.libp2p_trace_rpc_meta_control_ihave:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIHaveData + 98, // 117: xatu.ClientMeta.libp2p_trace_rpc_meta_control_iwant:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIWantData + 99, // 118: xatu.ClientMeta.libp2p_trace_rpc_meta_control_idontwant:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIDontWantData + 100, // 119: xatu.ClientMeta.libp2p_trace_rpc_meta_control_graft:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlGraftData + 101, // 120: xatu.ClientMeta.libp2p_trace_rpc_meta_control_prune:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlPruneData + 117, // 121: xatu.ClientMeta.libp2p_trace_rpc_meta_subscription:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaSubscriptionData + 118, // 122: xatu.ClientMeta.libp2p_trace_rpc_meta_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaMessageData + 131, // 123: xatu.ClientMeta.node_record_consensus:type_name -> xatu.ClientMeta.AdditionalNodeRecordConsensusData + 123, // 124: xatu.ClientMeta.libp2p_trace_gossipsub_aggregate_and_proof:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData + 87, // 125: xatu.ClientMeta.eth_v1_events_data_column_sidecar:type_name -> xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData + 125, // 126: xatu.ClientMeta.libp2p_trace_gossipsub_data_column_sidecar:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData + 112, // 127: xatu.ClientMeta.libp2p_trace_synthetic_heartbeat:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceSyntheticHeartbeatData + 116, // 128: xatu.ClientMeta.libp2p_trace_rpc_data_column_custody_probe:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData + 132, // 129: xatu.ClientMeta.consensus_engine_api_new_payload:type_name -> xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData + 133, // 130: xatu.ClientMeta.consensus_engine_api_get_blobs:type_name -> xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData + 134, // 131: xatu.ClientMeta.eth_v1_beacon_blob:type_name -> xatu.ClientMeta.AdditionalEthV1BeaconBlobData 60, // 132: xatu.ClientMeta.eth_v1_beacon_sync_committee:type_name -> xatu.ClientMeta.AdditionalEthV1BeaconSyncCommitteeData 61, // 133: xatu.ClientMeta.eth_v2_beacon_block_sync_aggregate:type_name -> xatu.ClientMeta.AdditionalEthV2BeaconBlockSyncAggregateData - 105, // 134: xatu.ClientMeta.libp2p_trace_identify:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceIdentifyData + 115, // 134: xatu.ClientMeta.libp2p_trace_identify:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceIdentifyData 73, // 135: xatu.ClientMeta.eth_v2_beacon_block_access_list:type_name -> xatu.ClientMeta.AdditionalEthV2BeaconBlockAccessListData - 152, // 136: xatu.ClientMeta.module_name:type_name -> xatu.ModuleName - 128, // 137: xatu.ServerMeta.event:type_name -> xatu.ServerMeta.Event - 130, // 138: xatu.ServerMeta.client:type_name -> xatu.ServerMeta.Client - 132, // 139: xatu.ServerMeta.BEACON_P2P_ATTESTATION:type_name -> xatu.ServerMeta.AdditionalBeaconP2PAttestationData - 133, // 140: xatu.ServerMeta.LIBP2P_TRACE_CONNECTED:type_name -> xatu.ServerMeta.AdditionalLibp2PTraceConnectedData - 134, // 141: xatu.ServerMeta.LIBP2P_TRACE_DISCONNECTED:type_name -> xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData - 137, // 142: xatu.ServerMeta.NODE_RECORD_CONSENSUS:type_name -> xatu.ServerMeta.AdditionalNodeRecordConsensusData - 138, // 143: xatu.ServerMeta.NODE_RECORD_EXECUTION:type_name -> xatu.ServerMeta.AdditionalNodeRecordExecutionData - 135, // 144: xatu.ServerMeta.LIBP2P_TRACE_SYNTHETIC_HEARTBEAT:type_name -> xatu.ServerMeta.AdditionalLibP2PTraceSyntheticHeartbeatData - 136, // 145: xatu.ServerMeta.LIBP2P_TRACE_IDENTIFY:type_name -> xatu.ServerMeta.AdditionalLibp2PTraceIdentifyData - 24, // 146: xatu.Meta.client:type_name -> xatu.ClientMeta - 25, // 147: xatu.Meta.server:type_name -> xatu.ServerMeta - 1, // 148: xatu.Event.name:type_name -> xatu.Event.Name - 144, // 149: xatu.Event.date_time:type_name -> google.protobuf.Timestamp - 143, // 150: xatu.ExecutionBlockMetrics.block_number:type_name -> google.protobuf.UInt64Value - 143, // 151: xatu.ExecutionBlockMetrics.gas_used:type_name -> google.protobuf.UInt64Value - 151, // 152: xatu.ExecutionBlockMetrics.tx_count:type_name -> google.protobuf.UInt32Value - 153, // 153: xatu.ExecutionBlockMetrics.execution_ms:type_name -> google.protobuf.DoubleValue - 153, // 154: xatu.ExecutionBlockMetrics.state_read_ms:type_name -> google.protobuf.DoubleValue - 153, // 155: xatu.ExecutionBlockMetrics.state_hash_ms:type_name -> google.protobuf.DoubleValue - 153, // 156: xatu.ExecutionBlockMetrics.commit_ms:type_name -> google.protobuf.DoubleValue - 153, // 157: xatu.ExecutionBlockMetrics.total_ms:type_name -> google.protobuf.DoubleValue - 153, // 158: xatu.ExecutionBlockMetrics.mgas_per_sec:type_name -> google.protobuf.DoubleValue - 139, // 159: xatu.ExecutionBlockMetrics.state_reads:type_name -> xatu.ExecutionBlockMetrics.StateReads - 140, // 160: xatu.ExecutionBlockMetrics.state_writes:type_name -> xatu.ExecutionBlockMetrics.StateWrites - 141, // 161: xatu.ExecutionBlockMetrics.account_cache:type_name -> xatu.ExecutionBlockMetrics.CacheEntry - 141, // 162: xatu.ExecutionBlockMetrics.storage_cache:type_name -> xatu.ExecutionBlockMetrics.CacheEntry - 142, // 163: xatu.ExecutionBlockMetrics.code_cache:type_name -> xatu.ExecutionBlockMetrics.CodeCacheEntry - 27, // 164: xatu.DecoratedEvent.event:type_name -> xatu.Event - 26, // 165: xatu.DecoratedEvent.meta:type_name -> xatu.Meta - 154, // 166: xatu.DecoratedEvent.eth_v1_events_attestation:type_name -> xatu.eth.v1.Attestation - 155, // 167: xatu.DecoratedEvent.eth_v1_events_block:type_name -> xatu.eth.v1.EventBlock - 146, // 168: xatu.DecoratedEvent.eth_v1_events_chain_reorg:type_name -> xatu.eth.v1.EventChainReorg - 156, // 169: xatu.DecoratedEvent.eth_v1_events_finalized_checkpoint:type_name -> xatu.eth.v1.EventFinalizedCheckpoint - 157, // 170: xatu.DecoratedEvent.eth_v1_events_head:type_name -> xatu.eth.v1.EventHead - 158, // 171: xatu.DecoratedEvent.eth_v1_events_voluntary_exit:type_name -> xatu.eth.v1.EventVoluntaryExit - 159, // 172: xatu.DecoratedEvent.eth_v1_events_contribution_and_proof:type_name -> xatu.eth.v1.EventContributionAndProof - 160, // 173: xatu.DecoratedEvent.eth_v2_beacon_block:type_name -> xatu.eth.v2.EventBlock - 145, // 174: xatu.DecoratedEvent.eth_v1_fork_choice:type_name -> xatu.eth.v1.ForkChoice - 13, // 175: xatu.DecoratedEvent.eth_v1_fork_choice_reorg:type_name -> xatu.DebugForkChoiceReorg - 161, // 176: xatu.DecoratedEvent.eth_v1_beacon_committee:type_name -> xatu.eth.v1.Committee - 162, // 177: xatu.DecoratedEvent.eth_v1_validator_attestation_data:type_name -> xatu.eth.v1.AttestationDataV2 - 163, // 178: xatu.DecoratedEvent.eth_v1_events_attestation_v2:type_name -> xatu.eth.v1.AttestationV2 - 164, // 179: xatu.DecoratedEvent.eth_v1_events_block_v2:type_name -> xatu.eth.v1.EventBlockV2 - 148, // 180: xatu.DecoratedEvent.eth_v1_events_chain_reorg_v2:type_name -> xatu.eth.v1.EventChainReorgV2 - 165, // 181: xatu.DecoratedEvent.eth_v1_events_finalized_checkpoint_v2:type_name -> xatu.eth.v1.EventFinalizedCheckpointV2 - 166, // 182: xatu.DecoratedEvent.eth_v1_events_head_v2:type_name -> xatu.eth.v1.EventHeadV2 - 167, // 183: xatu.DecoratedEvent.eth_v1_events_voluntary_exit_v2:type_name -> xatu.eth.v1.EventVoluntaryExitV2 - 168, // 184: xatu.DecoratedEvent.eth_v1_events_contribution_and_proof_v2:type_name -> xatu.eth.v1.EventContributionAndProofV2 - 169, // 185: xatu.DecoratedEvent.eth_v2_beacon_block_v2:type_name -> xatu.eth.v2.EventBlockV2 - 147, // 186: xatu.DecoratedEvent.eth_v1_fork_choice_v2:type_name -> xatu.eth.v1.ForkChoiceV2 - 14, // 187: xatu.DecoratedEvent.eth_v1_fork_choice_reorg_v2:type_name -> xatu.DebugForkChoiceReorgV2 - 170, // 188: xatu.DecoratedEvent.eth_v2_beacon_block_attester_slashing:type_name -> xatu.eth.v1.AttesterSlashingV2 - 171, // 189: xatu.DecoratedEvent.eth_v2_beacon_block_proposer_slashing:type_name -> xatu.eth.v1.ProposerSlashingV2 - 172, // 190: xatu.DecoratedEvent.eth_v2_beacon_block_voluntary_exit:type_name -> xatu.eth.v1.SignedVoluntaryExitV2 - 173, // 191: xatu.DecoratedEvent.eth_v2_beacon_block_deposit:type_name -> xatu.eth.v1.DepositV2 - 174, // 192: xatu.DecoratedEvent.eth_v2_beacon_block_bls_to_execution_change:type_name -> xatu.eth.v2.SignedBLSToExecutionChangeV2 - 175, // 193: xatu.DecoratedEvent.eth_v2_beacon_block_execution_transaction:type_name -> xatu.eth.v1.Transaction - 176, // 194: xatu.DecoratedEvent.eth_v2_beacon_block_withdrawal:type_name -> xatu.eth.v1.WithdrawalV2 - 177, // 195: xatu.DecoratedEvent.eth_v1_events_blob_sidecar:type_name -> xatu.eth.v1.EventBlobSidecar - 178, // 196: xatu.DecoratedEvent.eth_v1_beacon_block_blob_sidecar:type_name -> xatu.eth.v1.BlobSidecar - 163, // 197: xatu.DecoratedEvent.beacon_p2p_attestation:type_name -> xatu.eth.v1.AttestationV2 - 179, // 198: xatu.DecoratedEvent.eth_v1_proposer_duty:type_name -> xatu.eth.v1.ProposerDuty - 180, // 199: xatu.DecoratedEvent.eth_v2_beacon_block_elaborated_attestation:type_name -> xatu.eth.v1.ElaboratedAttestation - 181, // 200: xatu.DecoratedEvent.libp2p_trace_add_peer:type_name -> xatu.libp2p.AddPeer - 182, // 201: xatu.DecoratedEvent.libp2p_trace_remove_peer:type_name -> xatu.libp2p.RemovePeer - 183, // 202: xatu.DecoratedEvent.libp2p_trace_recv_rpc:type_name -> xatu.libp2p.RecvRPC - 184, // 203: xatu.DecoratedEvent.libp2p_trace_send_rpc:type_name -> xatu.libp2p.SendRPC - 185, // 204: xatu.DecoratedEvent.libp2p_trace_join:type_name -> xatu.libp2p.Join - 186, // 205: xatu.DecoratedEvent.libp2p_trace_connected:type_name -> xatu.libp2p.Connected - 187, // 206: xatu.DecoratedEvent.libp2p_trace_disconnected:type_name -> xatu.libp2p.Disconnected - 188, // 207: xatu.DecoratedEvent.libp2p_trace_handle_metadata:type_name -> xatu.libp2p.HandleMetadata - 189, // 208: xatu.DecoratedEvent.libp2p_trace_handle_status:type_name -> xatu.libp2p.HandleStatus - 190, // 209: xatu.DecoratedEvent.libp2p_trace_gossipsub_beacon_block:type_name -> xatu.libp2p.gossipsub.eth.BeaconBlock - 154, // 210: xatu.DecoratedEvent.libp2p_trace_gossipsub_beacon_attestation:type_name -> xatu.eth.v1.Attestation - 191, // 211: xatu.DecoratedEvent.libp2p_trace_gossipsub_blob_sidecar:type_name -> xatu.libp2p.gossipsub.eth.BlobSidecar - 15, // 212: xatu.DecoratedEvent.eth_v1_validators:type_name -> xatu.Validators - 192, // 213: xatu.DecoratedEvent.mev_relay_bid_trace_builder_block_submission:type_name -> xatu.mevrelay.BidTrace - 193, // 214: xatu.DecoratedEvent.mev_relay_payload_delivered:type_name -> xatu.mevrelay.ProposerPayloadDelivered - 169, // 215: xatu.DecoratedEvent.eth_v3_validator_block:type_name -> xatu.eth.v2.EventBlockV2 - 194, // 216: xatu.DecoratedEvent.mev_relay_validator_registration:type_name -> xatu.mevrelay.ValidatorRegistration - 195, // 217: xatu.DecoratedEvent.eth_v1_events_block_gossip:type_name -> xatu.eth.v1.EventBlockGossip - 196, // 218: xatu.DecoratedEvent.libp2p_trace_drop_rpc:type_name -> xatu.libp2p.DropRPC - 197, // 219: xatu.DecoratedEvent.libp2p_trace_leave:type_name -> xatu.libp2p.Leave - 198, // 220: xatu.DecoratedEvent.libp2p_trace_graft:type_name -> xatu.libp2p.Graft - 199, // 221: xatu.DecoratedEvent.libp2p_trace_prune:type_name -> xatu.libp2p.Prune - 200, // 222: xatu.DecoratedEvent.libp2p_trace_duplicate_message:type_name -> xatu.libp2p.DuplicateMessage - 201, // 223: xatu.DecoratedEvent.libp2p_trace_deliver_message:type_name -> xatu.libp2p.DeliverMessage - 202, // 224: xatu.DecoratedEvent.libp2p_trace_publish_message:type_name -> xatu.libp2p.PublishMessage - 203, // 225: xatu.DecoratedEvent.libp2p_trace_reject_message:type_name -> xatu.libp2p.RejectMessage - 204, // 226: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_ihave:type_name -> xatu.libp2p.ControlIHaveMetaItem - 205, // 227: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_iwant:type_name -> xatu.libp2p.ControlIWantMetaItem - 206, // 228: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_idontwant:type_name -> xatu.libp2p.ControlIDontWantMetaItem - 207, // 229: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_graft:type_name -> xatu.libp2p.ControlGraftMetaItem - 208, // 230: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_prune:type_name -> xatu.libp2p.ControlPruneMetaItem - 209, // 231: xatu.DecoratedEvent.libp2p_trace_rpc_meta_subscription:type_name -> xatu.libp2p.SubMetaItem - 210, // 232: xatu.DecoratedEvent.libp2p_trace_rpc_meta_message:type_name -> xatu.libp2p.MessageMetaItem - 211, // 233: xatu.DecoratedEvent.node_record_consensus:type_name -> xatu.noderecord.Consensus - 212, // 234: xatu.DecoratedEvent.node_record_execution:type_name -> xatu.noderecord.Execution - 213, // 235: xatu.DecoratedEvent.libp2p_trace_gossipsub_aggregate_and_proof:type_name -> xatu.eth.v1.SignedAggregateAttestationAndProofV2 - 214, // 236: xatu.DecoratedEvent.eth_v1_events_data_column_sidecar:type_name -> xatu.eth.v1.EventDataColumnSidecar - 215, // 237: xatu.DecoratedEvent.libp2p_trace_gossipsub_data_column_sidecar:type_name -> xatu.libp2p.gossipsub.eth.DataColumnSidecar - 216, // 238: xatu.DecoratedEvent.libp2p_trace_synthetic_heartbeat:type_name -> xatu.libp2p.SyntheticHeartbeat - 217, // 239: xatu.DecoratedEvent.libp2p_trace_identify:type_name -> xatu.libp2p.Identify - 218, // 240: xatu.DecoratedEvent.libp2p_trace_rpc_data_column_custody_probe:type_name -> xatu.libp2p.DataColumnCustodyProbe - 19, // 241: xatu.DecoratedEvent.execution_state_size:type_name -> xatu.ExecutionStateSize - 20, // 242: xatu.DecoratedEvent.consensus_engine_api_new_payload:type_name -> xatu.ConsensusEngineAPINewPayload - 21, // 243: xatu.DecoratedEvent.consensus_engine_api_get_blobs:type_name -> xatu.ConsensusEngineAPIGetBlobs - 22, // 244: xatu.DecoratedEvent.execution_engine_new_payload:type_name -> xatu.ExecutionEngineNewPayload - 23, // 245: xatu.DecoratedEvent.execution_engine_get_blobs:type_name -> xatu.ExecutionEngineGetBlobs - 219, // 246: xatu.DecoratedEvent.eth_v1_beacon_blob:type_name -> xatu.eth.v1.Blob - 16, // 247: xatu.DecoratedEvent.eth_v1_beacon_sync_committee:type_name -> xatu.SyncCommitteeData - 17, // 248: xatu.DecoratedEvent.eth_v2_beacon_block_sync_aggregate:type_name -> xatu.SyncAggregateData - 28, // 249: xatu.DecoratedEvent.execution_block_metrics:type_name -> xatu.ExecutionBlockMetrics - 220, // 250: xatu.DecoratedEvent.eth_v2_beacon_block_access_list:type_name -> xatu.eth.v1.BlockAccessListChange - 221, // 251: xatu.DecoratedEvent.eth_v1_events_execution_payload:type_name -> xatu.eth.v1.SignedExecutionPayloadEnvelope - 222, // 252: xatu.DecoratedEvent.eth_v1_events_payload_attestation:type_name -> xatu.eth.v1.PayloadAttestationMessage - 223, // 253: xatu.DecoratedEvent.eth_v1_events_execution_payload_bid:type_name -> xatu.eth.v1.SignedExecutionPayloadBid - 224, // 254: xatu.DecoratedEvent.eth_v1_events_proposer_preferences:type_name -> xatu.eth.v1.SignedProposerPreferences - 225, // 255: xatu.DecoratedEvent.eth_v2_beacon_block_payload_attestation:type_name -> xatu.eth.v1.PayloadAttestation - 223, // 256: xatu.DecoratedEvent.eth_v2_beacon_block_execution_payload_bid:type_name -> xatu.eth.v1.SignedExecutionPayloadBid - 226, // 257: xatu.DecoratedEvent.libp2p_trace_gossipsub_execution_payload_envelope:type_name -> xatu.libp2p.gossipsub.eth.ExecutionPayloadEnvelope - 227, // 258: xatu.DecoratedEvent.libp2p_trace_gossipsub_execution_payload_bid:type_name -> xatu.libp2p.gossipsub.eth.ExecutionPayloadBid - 228, // 259: xatu.DecoratedEvent.libp2p_trace_gossipsub_payload_attestation_message:type_name -> xatu.libp2p.gossipsub.eth.PayloadAttestationMessage - 229, // 260: xatu.DecoratedEvent.libp2p_trace_gossipsub_proposer_preferences:type_name -> xatu.libp2p.gossipsub.eth.ProposerPreferences - 125, // 261: xatu.ClientMeta.Ethereum.network:type_name -> xatu.ClientMeta.Ethereum.Network - 126, // 262: xatu.ClientMeta.Ethereum.execution:type_name -> xatu.ClientMeta.Ethereum.Execution - 127, // 263: xatu.ClientMeta.Ethereum.consensus:type_name -> xatu.ClientMeta.Ethereum.Consensus - 4, // 264: xatu.ClientMeta.AdditionalEthV1AttestationSourceData.epoch:type_name -> xatu.Epoch - 5, // 265: xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data.epoch:type_name -> xatu.EpochV2 - 4, // 266: xatu.ClientMeta.AdditionalEthV1AttestationTargetData.epoch:type_name -> xatu.Epoch - 5, // 267: xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data.epoch:type_name -> xatu.EpochV2 - 32, // 268: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceData - 34, // 269: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetData - 6, // 270: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.slot:type_name -> xatu.Slot - 4, // 271: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.epoch:type_name -> xatu.Epoch - 9, // 272: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.propagation:type_name -> xatu.Propagation - 11, // 273: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.attesting_validator:type_name -> xatu.AttestingValidator - 33, // 274: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 35, // 275: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 7, // 276: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.slot:type_name -> xatu.SlotV2 - 5, // 277: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.epoch:type_name -> xatu.EpochV2 - 10, // 278: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.propagation:type_name -> xatu.PropagationV2 - 12, // 279: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.attesting_validator:type_name -> xatu.AttestingValidatorV2 - 4, // 280: xatu.ClientMeta.AdditionalEthV1EventsHeadData.epoch:type_name -> xatu.Epoch - 6, // 281: xatu.ClientMeta.AdditionalEthV1EventsHeadData.slot:type_name -> xatu.Slot - 9, // 282: xatu.ClientMeta.AdditionalEthV1EventsHeadData.propagation:type_name -> xatu.Propagation - 5, // 283: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.epoch:type_name -> xatu.EpochV2 - 7, // 284: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.slot:type_name -> xatu.SlotV2 - 10, // 285: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.propagation:type_name -> xatu.PropagationV2 - 4, // 286: xatu.ClientMeta.AdditionalEthV1EventsBlockData.epoch:type_name -> xatu.Epoch - 6, // 287: xatu.ClientMeta.AdditionalEthV1EventsBlockData.slot:type_name -> xatu.Slot - 9, // 288: xatu.ClientMeta.AdditionalEthV1EventsBlockData.propagation:type_name -> xatu.Propagation - 5, // 289: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.epoch:type_name -> xatu.EpochV2 - 7, // 290: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.slot:type_name -> xatu.SlotV2 - 10, // 291: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.propagation:type_name -> xatu.PropagationV2 - 5, // 292: xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData.epoch:type_name -> xatu.EpochV2 - 7, // 293: xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData.slot:type_name -> xatu.SlotV2 - 10, // 294: xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData.propagation:type_name -> xatu.PropagationV2 - 4, // 295: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitData.epoch:type_name -> xatu.Epoch - 5, // 296: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.epoch:type_name -> xatu.EpochV2 - 5, // 297: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 298: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.wallclock_slot:type_name -> xatu.SlotV2 - 4, // 299: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointData.epoch:type_name -> xatu.Epoch - 5, // 300: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointV2Data.epoch:type_name -> xatu.EpochV2 - 4, // 301: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.epoch:type_name -> xatu.Epoch - 6, // 302: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.slot:type_name -> xatu.Slot - 9, // 303: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.propagation:type_name -> xatu.Propagation - 5, // 304: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.epoch:type_name -> xatu.EpochV2 - 7, // 305: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.slot:type_name -> xatu.SlotV2 - 10, // 306: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.propagation:type_name -> xatu.PropagationV2 - 4, // 307: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.epoch:type_name -> xatu.Epoch - 6, // 308: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.slot:type_name -> xatu.Slot - 9, // 309: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.propagation:type_name -> xatu.Propagation - 5, // 310: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.epoch:type_name -> xatu.EpochV2 - 7, // 311: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.slot:type_name -> xatu.SlotV2 - 10, // 312: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.propagation:type_name -> xatu.PropagationV2 - 49, // 313: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofData.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData - 50, // 314: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofV2Data.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data - 4, // 315: xatu.ClientMeta.ForkChoiceSnapshot.request_epoch:type_name -> xatu.Epoch - 6, // 316: xatu.ClientMeta.ForkChoiceSnapshot.request_slot:type_name -> xatu.Slot - 144, // 317: xatu.ClientMeta.ForkChoiceSnapshot.timestamp:type_name -> google.protobuf.Timestamp - 5, // 318: xatu.ClientMeta.ForkChoiceSnapshotV2.request_epoch:type_name -> xatu.EpochV2 - 7, // 319: xatu.ClientMeta.ForkChoiceSnapshotV2.request_slot:type_name -> xatu.SlotV2 - 143, // 320: xatu.ClientMeta.ForkChoiceSnapshotV2.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value - 143, // 321: xatu.ClientMeta.ForkChoiceSnapshotV2.request_duration_ms:type_name -> google.protobuf.UInt64Value - 144, // 322: xatu.ClientMeta.ForkChoiceSnapshotV2.timestamp:type_name -> google.protobuf.Timestamp - 53, // 323: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshot - 54, // 324: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceV2Data.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 - 53, // 325: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshot - 53, // 326: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshot - 54, // 327: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 - 54, // 328: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 - 5, // 329: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.epoch:type_name -> xatu.EpochV2 - 7, // 330: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.slot:type_name -> xatu.SlotV2 - 5, // 331: xatu.ClientMeta.AdditionalEthV1BeaconSyncCommitteeData.epoch:type_name -> xatu.EpochV2 - 143, // 332: xatu.ClientMeta.AdditionalEthV1BeaconSyncCommitteeData.sync_committee_period:type_name -> google.protobuf.UInt64Value - 18, // 333: xatu.ClientMeta.AdditionalEthV2BeaconBlockSyncAggregateData.block:type_name -> xatu.BlockIdentifier - 143, // 334: xatu.ClientMeta.AdditionalEthV2BeaconBlockSyncAggregateData.sync_committee_period:type_name -> google.protobuf.UInt64Value - 143, // 335: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.nonce:type_name -> google.protobuf.UInt64Value - 143, // 336: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.gas:type_name -> google.protobuf.UInt64Value - 151, // 337: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.type:type_name -> google.protobuf.UInt32Value - 143, // 338: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.blob_gas:type_name -> google.protobuf.UInt64Value - 4, // 339: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.epoch:type_name -> xatu.Epoch - 6, // 340: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.slot:type_name -> xatu.Slot - 5, // 341: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.epoch:type_name -> xatu.EpochV2 - 7, // 342: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.slot:type_name -> xatu.SlotV2 - 143, // 343: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_count:type_name -> google.protobuf.UInt64Value - 143, // 344: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes:type_name -> google.protobuf.UInt64Value - 143, // 345: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes_compressed:type_name -> google.protobuf.UInt64Value - 143, // 346: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes:type_name -> google.protobuf.UInt64Value - 143, // 347: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes_compressed:type_name -> google.protobuf.UInt64Value - 18, // 348: xatu.ClientMeta.AdditionalEthV2BeaconBlockAttesterSlashingData.block:type_name -> xatu.BlockIdentifier - 18, // 349: xatu.ClientMeta.AdditionalEthV2BeaconBlockProposerSlashingData.block:type_name -> xatu.BlockIdentifier - 18, // 350: xatu.ClientMeta.AdditionalEthV2BeaconBlockVoluntaryExitData.block:type_name -> xatu.BlockIdentifier - 18, // 351: xatu.ClientMeta.AdditionalEthV2BeaconBlockDepositData.block:type_name -> xatu.BlockIdentifier - 18, // 352: xatu.ClientMeta.AdditionalEthV2BeaconBlockBLSToExecutionChangeData.block:type_name -> xatu.BlockIdentifier - 18, // 353: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.block:type_name -> xatu.BlockIdentifier - 143, // 354: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.position_in_block:type_name -> google.protobuf.UInt64Value - 18, // 355: xatu.ClientMeta.AdditionalEthV2BeaconBlockWithdrawalData.block:type_name -> xatu.BlockIdentifier - 18, // 356: xatu.ClientMeta.AdditionalEthV2BeaconBlockAccessListData.block:type_name -> xatu.BlockIdentifier - 143, // 357: xatu.ClientMeta.AdditionalEthV2BeaconBlockAccessListData.block_number:type_name -> google.protobuf.UInt64Value - 143, // 358: xatu.ClientMeta.AttestationDataSnapshot.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value - 143, // 359: xatu.ClientMeta.AttestationDataSnapshot.request_duration_ms:type_name -> google.protobuf.UInt64Value - 144, // 360: xatu.ClientMeta.AttestationDataSnapshot.timestamp:type_name -> google.protobuf.Timestamp - 33, // 361: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 35, // 362: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 5, // 363: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.epoch:type_name -> xatu.EpochV2 - 7, // 364: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.slot:type_name -> xatu.SlotV2 - 74, // 365: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.Snapshot:type_name -> xatu.ClientMeta.AttestationDataSnapshot - 5, // 366: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 367: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.slot:type_name -> xatu.SlotV2 - 10, // 368: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.propagation:type_name -> xatu.PropagationV2 - 5, // 369: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 370: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.slot:type_name -> xatu.SlotV2 - 10, // 371: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.propagation:type_name -> xatu.PropagationV2 - 5, // 372: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 373: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.slot:type_name -> xatu.SlotV2 - 143, // 374: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_size:type_name -> google.protobuf.UInt64Value - 143, // 375: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_empty_size:type_name -> google.protobuf.UInt64Value - 33, // 376: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 35, // 377: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 7, // 378: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.slot:type_name -> xatu.SlotV2 - 5, // 379: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.epoch:type_name -> xatu.EpochV2 - 10, // 380: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.propagation:type_name -> xatu.PropagationV2 - 12, // 381: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 - 230, // 382: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.libp2p.Peer - 151, // 383: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.subnet:type_name -> google.protobuf.UInt32Value - 231, // 384: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.validated:type_name -> google.protobuf.BoolValue - 5, // 385: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.epoch:type_name -> xatu.EpochV2 - 7, // 386: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.slot:type_name -> xatu.SlotV2 - 18, // 387: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.block:type_name -> xatu.BlockIdentifier - 143, // 388: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.position_in_block:type_name -> google.protobuf.UInt64Value - 5, // 389: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.epoch:type_name -> xatu.EpochV2 - 7, // 390: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.slot:type_name -> xatu.SlotV2 - 33, // 391: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 35, // 392: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 232, // 393: xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 394: xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 395: xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 396: xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 397: xatu.ClientMeta.AdditionalLibP2PTraceDropRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 398: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIHaveData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 399: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIWantData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 400: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIDontWantData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 401: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlGraftData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 402: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlPruneData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 403: xatu.ClientMeta.AdditionalLibP2PTraceJoinData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 404: xatu.ClientMeta.AdditionalLibP2PTraceLeaveData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 405: xatu.ClientMeta.AdditionalLibP2PTraceGraftData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 406: xatu.ClientMeta.AdditionalLibP2PTracePruneData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 407: xatu.ClientMeta.AdditionalLibP2PTraceDuplicateMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 408: xatu.ClientMeta.AdditionalLibP2PTraceDeliverMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 409: xatu.ClientMeta.AdditionalLibP2PTracePublishMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 410: xatu.ClientMeta.AdditionalLibP2PTraceRejectMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 411: xatu.ClientMeta.AdditionalLibP2PTraceConnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 412: xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 413: xatu.ClientMeta.AdditionalLibP2PTraceSyntheticHeartbeatData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 414: xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 415: xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 416: xatu.ClientMeta.AdditionalLibP2PTraceIdentifyData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 417: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 5, // 418: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.epoch:type_name -> xatu.EpochV2 - 7, // 419: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.slot:type_name -> xatu.SlotV2 - 5, // 420: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 421: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.wallclock_slot:type_name -> xatu.SlotV2 - 232, // 422: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaSubscriptionData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 232, // 423: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 5, // 424: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.epoch:type_name -> xatu.EpochV2 - 7, // 425: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.slot:type_name -> xatu.SlotV2 - 5, // 426: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 427: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_slot:type_name -> xatu.SlotV2 - 10, // 428: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.propagation:type_name -> xatu.PropagationV2 - 232, // 429: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 233, // 430: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.topic:type_name -> google.protobuf.StringValue - 151, // 431: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_size:type_name -> google.protobuf.UInt32Value - 233, // 432: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_id:type_name -> google.protobuf.StringValue - 5, // 433: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData.epoch:type_name -> xatu.EpochV2 - 5, // 434: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData.epoch:type_name -> xatu.EpochV2 - 110, // 435: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.source:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData - 111, // 436: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.target:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData - 7, // 437: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.slot:type_name -> xatu.SlotV2 - 5, // 438: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.epoch:type_name -> xatu.EpochV2 - 10, // 439: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.propagation:type_name -> xatu.PropagationV2 - 12, // 440: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 - 5, // 441: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 442: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_slot:type_name -> xatu.SlotV2 - 232, // 443: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 233, // 444: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.topic:type_name -> google.protobuf.StringValue - 151, // 445: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_size:type_name -> google.protobuf.UInt32Value - 233, // 446: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_id:type_name -> google.protobuf.StringValue - 5, // 447: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.epoch:type_name -> xatu.EpochV2 - 7, // 448: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.slot:type_name -> xatu.SlotV2 - 5, // 449: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 450: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.wallclock_slot:type_name -> xatu.SlotV2 - 10, // 451: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.propagation:type_name -> xatu.PropagationV2 - 143, // 452: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.aggregator_index:type_name -> google.protobuf.UInt64Value - 232, // 453: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 233, // 454: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.topic:type_name -> google.protobuf.StringValue - 151, // 455: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.message_size:type_name -> google.protobuf.UInt32Value - 233, // 456: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.message_id:type_name -> google.protobuf.StringValue - 5, // 457: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 458: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.slot:type_name -> xatu.SlotV2 - 5, // 459: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 460: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_slot:type_name -> xatu.SlotV2 - 10, // 461: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.propagation:type_name -> xatu.PropagationV2 - 232, // 462: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 233, // 463: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.topic:type_name -> google.protobuf.StringValue - 151, // 464: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_size:type_name -> google.protobuf.UInt32Value - 233, // 465: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_id:type_name -> google.protobuf.StringValue - 5, // 466: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.epoch:type_name -> xatu.EpochV2 - 7, // 467: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.slot:type_name -> xatu.SlotV2 - 5, // 468: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 - 7, // 469: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.wallclock_slot:type_name -> xatu.SlotV2 - 10, // 470: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.propagation:type_name -> xatu.PropagationV2 - 232, // 471: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 233, // 472: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.topic:type_name -> google.protobuf.StringValue - 151, // 473: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.message_size:type_name -> google.protobuf.UInt32Value - 233, // 474: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.message_id:type_name -> google.protobuf.StringValue - 5, // 475: xatu.ClientMeta.AdditionalEthV1ValidatorsData.epoch:type_name -> xatu.EpochV2 - 234, // 476: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.relay:type_name -> xatu.mevrelay.Relay - 7, // 477: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.slot:type_name -> xatu.SlotV2 - 7, // 478: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.wallclock_slot:type_name -> xatu.SlotV2 - 5, // 479: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.epoch:type_name -> xatu.EpochV2 - 5, // 480: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.wallclock_epoch:type_name -> xatu.EpochV2 - 143, // 481: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.requested_at_slot_time:type_name -> google.protobuf.UInt64Value - 143, // 482: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.response_at_slot_time:type_name -> google.protobuf.UInt64Value - 234, // 483: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.relay:type_name -> xatu.mevrelay.Relay - 7, // 484: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.slot:type_name -> xatu.SlotV2 - 7, // 485: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.wallclock_slot:type_name -> xatu.SlotV2 - 5, // 486: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.epoch:type_name -> xatu.EpochV2 - 5, // 487: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.wallclock_epoch:type_name -> xatu.EpochV2 - 143, // 488: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.requested_at_slot_time:type_name -> google.protobuf.UInt64Value - 143, // 489: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.response_at_slot_time:type_name -> google.protobuf.UInt64Value - 5, // 490: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.epoch:type_name -> xatu.EpochV2 - 7, // 491: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.slot:type_name -> xatu.SlotV2 - 143, // 492: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_count:type_name -> google.protobuf.UInt64Value - 143, // 493: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_total_bytes:type_name -> google.protobuf.UInt64Value - 143, // 494: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_total_bytes_compressed:type_name -> google.protobuf.UInt64Value - 143, // 495: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.total_bytes:type_name -> google.protobuf.UInt64Value - 143, // 496: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.total_bytes_compressed:type_name -> google.protobuf.UInt64Value - 143, // 497: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.request_duration_ms:type_name -> google.protobuf.UInt64Value - 144, // 498: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.requested_at:type_name -> google.protobuf.Timestamp - 234, // 499: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.relay:type_name -> xatu.mevrelay.Relay - 7, // 500: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.slot:type_name -> xatu.SlotV2 - 7, // 501: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.wallclock_slot:type_name -> xatu.SlotV2 - 5, // 502: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.epoch:type_name -> xatu.EpochV2 - 5, // 503: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.wallclock_epoch:type_name -> xatu.EpochV2 - 143, // 504: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.validator_index:type_name -> google.protobuf.UInt64Value - 5, // 505: xatu.ClientMeta.AdditionalNodeRecordConsensusData.finalized_epoch:type_name -> xatu.EpochV2 - 7, // 506: xatu.ClientMeta.AdditionalNodeRecordConsensusData.head_slot:type_name -> xatu.SlotV2 - 5, // 507: xatu.ClientMeta.AdditionalNodeRecordConsensusData.head_epoch:type_name -> xatu.EpochV2 - 5, // 508: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData.epoch:type_name -> xatu.EpochV2 - 7, // 509: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData.slot:type_name -> xatu.SlotV2 - 5, // 510: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData.epoch:type_name -> xatu.EpochV2 - 7, // 511: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData.slot:type_name -> xatu.SlotV2 - 5, // 512: xatu.ClientMeta.AdditionalEthV1BeaconBlobData.epoch:type_name -> xatu.EpochV2 - 7, // 513: xatu.ClientMeta.AdditionalEthV1BeaconBlobData.slot:type_name -> xatu.SlotV2 - 8, // 514: xatu.ClientMeta.Ethereum.Execution.fork_id:type_name -> xatu.ForkID - 144, // 515: xatu.ServerMeta.Event.received_date_time:type_name -> google.protobuf.Timestamp - 129, // 516: xatu.ServerMeta.Client.geo:type_name -> xatu.ServerMeta.Geo - 129, // 517: xatu.ServerMeta.Peer.geo:type_name -> xatu.ServerMeta.Geo - 131, // 518: xatu.ServerMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.ServerMeta.Peer - 131, // 519: xatu.ServerMeta.AdditionalLibp2PTraceConnectedData.peer:type_name -> xatu.ServerMeta.Peer - 131, // 520: xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData.peer:type_name -> xatu.ServerMeta.Peer - 131, // 521: xatu.ServerMeta.AdditionalLibP2PTraceSyntheticHeartbeatData.peer:type_name -> xatu.ServerMeta.Peer - 131, // 522: xatu.ServerMeta.AdditionalLibp2PTraceIdentifyData.peer:type_name -> xatu.ServerMeta.Peer - 129, // 523: xatu.ServerMeta.AdditionalNodeRecordConsensusData.geo:type_name -> xatu.ServerMeta.Geo - 129, // 524: xatu.ServerMeta.AdditionalNodeRecordExecutionData.geo:type_name -> xatu.ServerMeta.Geo - 143, // 525: xatu.ExecutionBlockMetrics.StateReads.accounts:type_name -> google.protobuf.UInt64Value - 143, // 526: xatu.ExecutionBlockMetrics.StateReads.storage_slots:type_name -> google.protobuf.UInt64Value - 143, // 527: xatu.ExecutionBlockMetrics.StateReads.code:type_name -> google.protobuf.UInt64Value - 143, // 528: xatu.ExecutionBlockMetrics.StateReads.code_bytes:type_name -> google.protobuf.UInt64Value - 143, // 529: xatu.ExecutionBlockMetrics.StateWrites.accounts:type_name -> google.protobuf.UInt64Value - 143, // 530: xatu.ExecutionBlockMetrics.StateWrites.accounts_deleted:type_name -> google.protobuf.UInt64Value - 143, // 531: xatu.ExecutionBlockMetrics.StateWrites.storage_slots:type_name -> google.protobuf.UInt64Value - 143, // 532: xatu.ExecutionBlockMetrics.StateWrites.storage_slots_deleted:type_name -> google.protobuf.UInt64Value - 143, // 533: xatu.ExecutionBlockMetrics.StateWrites.code:type_name -> google.protobuf.UInt64Value - 143, // 534: xatu.ExecutionBlockMetrics.StateWrites.code_bytes:type_name -> google.protobuf.UInt64Value - 235, // 535: xatu.ExecutionBlockMetrics.CacheEntry.hits:type_name -> google.protobuf.Int64Value - 235, // 536: xatu.ExecutionBlockMetrics.CacheEntry.misses:type_name -> google.protobuf.Int64Value - 153, // 537: xatu.ExecutionBlockMetrics.CacheEntry.hit_rate:type_name -> google.protobuf.DoubleValue - 235, // 538: xatu.ExecutionBlockMetrics.CodeCacheEntry.hits:type_name -> google.protobuf.Int64Value - 235, // 539: xatu.ExecutionBlockMetrics.CodeCacheEntry.misses:type_name -> google.protobuf.Int64Value - 153, // 540: xatu.ExecutionBlockMetrics.CodeCacheEntry.hit_rate:type_name -> google.protobuf.DoubleValue - 235, // 541: xatu.ExecutionBlockMetrics.CodeCacheEntry.hit_bytes:type_name -> google.protobuf.Int64Value - 235, // 542: xatu.ExecutionBlockMetrics.CodeCacheEntry.miss_bytes:type_name -> google.protobuf.Int64Value - 2, // 543: xatu.EventIngester.CreateEvents:input_type -> xatu.CreateEventsRequest - 3, // 544: xatu.EventIngester.CreateEvents:output_type -> xatu.CreateEventsResponse - 544, // [544:545] is the sub-list for method output_type - 543, // [543:544] is the sub-list for method input_type - 543, // [543:543] is the sub-list for extension type_name - 543, // [543:543] is the sub-list for extension extendee - 0, // [0:543] is the sub-list for field type_name + 74, // 136: xatu.ClientMeta.eth_v1_events_execution_payload:type_name -> xatu.ClientMeta.AdditionalEthV1EventsExecutionPayloadData + 75, // 137: xatu.ClientMeta.eth_v1_events_payload_attestation:type_name -> xatu.ClientMeta.AdditionalEthV1EventsPayloadAttestationData + 76, // 138: xatu.ClientMeta.eth_v1_events_execution_payload_bid:type_name -> xatu.ClientMeta.AdditionalEthV1EventsExecutionPayloadBidData + 77, // 139: xatu.ClientMeta.eth_v1_events_proposer_preferences:type_name -> xatu.ClientMeta.AdditionalEthV1EventsProposerPreferencesData + 78, // 140: xatu.ClientMeta.eth_v2_beacon_block_payload_attestation:type_name -> xatu.ClientMeta.AdditionalEthV2BeaconBlockPayloadAttestationData + 79, // 141: xatu.ClientMeta.eth_v2_beacon_block_execution_payload_bid:type_name -> xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionPayloadBidData + 80, // 142: xatu.ClientMeta.libp2p_trace_gossipsub_execution_payload_envelope:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData + 81, // 143: xatu.ClientMeta.libp2p_trace_gossipsub_execution_payload_bid:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadBidData + 82, // 144: xatu.ClientMeta.libp2p_trace_gossipsub_payload_attestation_message:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData + 83, // 145: xatu.ClientMeta.libp2p_trace_gossipsub_proposer_preferences:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubProposerPreferencesData + 162, // 146: xatu.ClientMeta.module_name:type_name -> xatu.ModuleName + 138, // 147: xatu.ServerMeta.event:type_name -> xatu.ServerMeta.Event + 140, // 148: xatu.ServerMeta.client:type_name -> xatu.ServerMeta.Client + 142, // 149: xatu.ServerMeta.BEACON_P2P_ATTESTATION:type_name -> xatu.ServerMeta.AdditionalBeaconP2PAttestationData + 143, // 150: xatu.ServerMeta.LIBP2P_TRACE_CONNECTED:type_name -> xatu.ServerMeta.AdditionalLibp2PTraceConnectedData + 144, // 151: xatu.ServerMeta.LIBP2P_TRACE_DISCONNECTED:type_name -> xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData + 147, // 152: xatu.ServerMeta.NODE_RECORD_CONSENSUS:type_name -> xatu.ServerMeta.AdditionalNodeRecordConsensusData + 148, // 153: xatu.ServerMeta.NODE_RECORD_EXECUTION:type_name -> xatu.ServerMeta.AdditionalNodeRecordExecutionData + 145, // 154: xatu.ServerMeta.LIBP2P_TRACE_SYNTHETIC_HEARTBEAT:type_name -> xatu.ServerMeta.AdditionalLibP2PTraceSyntheticHeartbeatData + 146, // 155: xatu.ServerMeta.LIBP2P_TRACE_IDENTIFY:type_name -> xatu.ServerMeta.AdditionalLibp2PTraceIdentifyData + 24, // 156: xatu.Meta.client:type_name -> xatu.ClientMeta + 25, // 157: xatu.Meta.server:type_name -> xatu.ServerMeta + 1, // 158: xatu.Event.name:type_name -> xatu.Event.Name + 154, // 159: xatu.Event.date_time:type_name -> google.protobuf.Timestamp + 153, // 160: xatu.ExecutionBlockMetrics.block_number:type_name -> google.protobuf.UInt64Value + 153, // 161: xatu.ExecutionBlockMetrics.gas_used:type_name -> google.protobuf.UInt64Value + 161, // 162: xatu.ExecutionBlockMetrics.tx_count:type_name -> google.protobuf.UInt32Value + 163, // 163: xatu.ExecutionBlockMetrics.execution_ms:type_name -> google.protobuf.DoubleValue + 163, // 164: xatu.ExecutionBlockMetrics.state_read_ms:type_name -> google.protobuf.DoubleValue + 163, // 165: xatu.ExecutionBlockMetrics.state_hash_ms:type_name -> google.protobuf.DoubleValue + 163, // 166: xatu.ExecutionBlockMetrics.commit_ms:type_name -> google.protobuf.DoubleValue + 163, // 167: xatu.ExecutionBlockMetrics.total_ms:type_name -> google.protobuf.DoubleValue + 163, // 168: xatu.ExecutionBlockMetrics.mgas_per_sec:type_name -> google.protobuf.DoubleValue + 149, // 169: xatu.ExecutionBlockMetrics.state_reads:type_name -> xatu.ExecutionBlockMetrics.StateReads + 150, // 170: xatu.ExecutionBlockMetrics.state_writes:type_name -> xatu.ExecutionBlockMetrics.StateWrites + 151, // 171: xatu.ExecutionBlockMetrics.account_cache:type_name -> xatu.ExecutionBlockMetrics.CacheEntry + 151, // 172: xatu.ExecutionBlockMetrics.storage_cache:type_name -> xatu.ExecutionBlockMetrics.CacheEntry + 152, // 173: xatu.ExecutionBlockMetrics.code_cache:type_name -> xatu.ExecutionBlockMetrics.CodeCacheEntry + 27, // 174: xatu.DecoratedEvent.event:type_name -> xatu.Event + 26, // 175: xatu.DecoratedEvent.meta:type_name -> xatu.Meta + 164, // 176: xatu.DecoratedEvent.eth_v1_events_attestation:type_name -> xatu.eth.v1.Attestation + 165, // 177: xatu.DecoratedEvent.eth_v1_events_block:type_name -> xatu.eth.v1.EventBlock + 156, // 178: xatu.DecoratedEvent.eth_v1_events_chain_reorg:type_name -> xatu.eth.v1.EventChainReorg + 166, // 179: xatu.DecoratedEvent.eth_v1_events_finalized_checkpoint:type_name -> xatu.eth.v1.EventFinalizedCheckpoint + 167, // 180: xatu.DecoratedEvent.eth_v1_events_head:type_name -> xatu.eth.v1.EventHead + 168, // 181: xatu.DecoratedEvent.eth_v1_events_voluntary_exit:type_name -> xatu.eth.v1.EventVoluntaryExit + 169, // 182: xatu.DecoratedEvent.eth_v1_events_contribution_and_proof:type_name -> xatu.eth.v1.EventContributionAndProof + 170, // 183: xatu.DecoratedEvent.eth_v2_beacon_block:type_name -> xatu.eth.v2.EventBlock + 155, // 184: xatu.DecoratedEvent.eth_v1_fork_choice:type_name -> xatu.eth.v1.ForkChoice + 13, // 185: xatu.DecoratedEvent.eth_v1_fork_choice_reorg:type_name -> xatu.DebugForkChoiceReorg + 171, // 186: xatu.DecoratedEvent.eth_v1_beacon_committee:type_name -> xatu.eth.v1.Committee + 172, // 187: xatu.DecoratedEvent.eth_v1_validator_attestation_data:type_name -> xatu.eth.v1.AttestationDataV2 + 173, // 188: xatu.DecoratedEvent.eth_v1_events_attestation_v2:type_name -> xatu.eth.v1.AttestationV2 + 174, // 189: xatu.DecoratedEvent.eth_v1_events_block_v2:type_name -> xatu.eth.v1.EventBlockV2 + 158, // 190: xatu.DecoratedEvent.eth_v1_events_chain_reorg_v2:type_name -> xatu.eth.v1.EventChainReorgV2 + 175, // 191: xatu.DecoratedEvent.eth_v1_events_finalized_checkpoint_v2:type_name -> xatu.eth.v1.EventFinalizedCheckpointV2 + 176, // 192: xatu.DecoratedEvent.eth_v1_events_head_v2:type_name -> xatu.eth.v1.EventHeadV2 + 177, // 193: xatu.DecoratedEvent.eth_v1_events_voluntary_exit_v2:type_name -> xatu.eth.v1.EventVoluntaryExitV2 + 178, // 194: xatu.DecoratedEvent.eth_v1_events_contribution_and_proof_v2:type_name -> xatu.eth.v1.EventContributionAndProofV2 + 179, // 195: xatu.DecoratedEvent.eth_v2_beacon_block_v2:type_name -> xatu.eth.v2.EventBlockV2 + 157, // 196: xatu.DecoratedEvent.eth_v1_fork_choice_v2:type_name -> xatu.eth.v1.ForkChoiceV2 + 14, // 197: xatu.DecoratedEvent.eth_v1_fork_choice_reorg_v2:type_name -> xatu.DebugForkChoiceReorgV2 + 180, // 198: xatu.DecoratedEvent.eth_v2_beacon_block_attester_slashing:type_name -> xatu.eth.v1.AttesterSlashingV2 + 181, // 199: xatu.DecoratedEvent.eth_v2_beacon_block_proposer_slashing:type_name -> xatu.eth.v1.ProposerSlashingV2 + 182, // 200: xatu.DecoratedEvent.eth_v2_beacon_block_voluntary_exit:type_name -> xatu.eth.v1.SignedVoluntaryExitV2 + 183, // 201: xatu.DecoratedEvent.eth_v2_beacon_block_deposit:type_name -> xatu.eth.v1.DepositV2 + 184, // 202: xatu.DecoratedEvent.eth_v2_beacon_block_bls_to_execution_change:type_name -> xatu.eth.v2.SignedBLSToExecutionChangeV2 + 185, // 203: xatu.DecoratedEvent.eth_v2_beacon_block_execution_transaction:type_name -> xatu.eth.v1.Transaction + 186, // 204: xatu.DecoratedEvent.eth_v2_beacon_block_withdrawal:type_name -> xatu.eth.v1.WithdrawalV2 + 187, // 205: xatu.DecoratedEvent.eth_v1_events_blob_sidecar:type_name -> xatu.eth.v1.EventBlobSidecar + 188, // 206: xatu.DecoratedEvent.eth_v1_beacon_block_blob_sidecar:type_name -> xatu.eth.v1.BlobSidecar + 173, // 207: xatu.DecoratedEvent.beacon_p2p_attestation:type_name -> xatu.eth.v1.AttestationV2 + 189, // 208: xatu.DecoratedEvent.eth_v1_proposer_duty:type_name -> xatu.eth.v1.ProposerDuty + 190, // 209: xatu.DecoratedEvent.eth_v2_beacon_block_elaborated_attestation:type_name -> xatu.eth.v1.ElaboratedAttestation + 191, // 210: xatu.DecoratedEvent.libp2p_trace_add_peer:type_name -> xatu.libp2p.AddPeer + 192, // 211: xatu.DecoratedEvent.libp2p_trace_remove_peer:type_name -> xatu.libp2p.RemovePeer + 193, // 212: xatu.DecoratedEvent.libp2p_trace_recv_rpc:type_name -> xatu.libp2p.RecvRPC + 194, // 213: xatu.DecoratedEvent.libp2p_trace_send_rpc:type_name -> xatu.libp2p.SendRPC + 195, // 214: xatu.DecoratedEvent.libp2p_trace_join:type_name -> xatu.libp2p.Join + 196, // 215: xatu.DecoratedEvent.libp2p_trace_connected:type_name -> xatu.libp2p.Connected + 197, // 216: xatu.DecoratedEvent.libp2p_trace_disconnected:type_name -> xatu.libp2p.Disconnected + 198, // 217: xatu.DecoratedEvent.libp2p_trace_handle_metadata:type_name -> xatu.libp2p.HandleMetadata + 199, // 218: xatu.DecoratedEvent.libp2p_trace_handle_status:type_name -> xatu.libp2p.HandleStatus + 200, // 219: xatu.DecoratedEvent.libp2p_trace_gossipsub_beacon_block:type_name -> xatu.libp2p.gossipsub.eth.BeaconBlock + 164, // 220: xatu.DecoratedEvent.libp2p_trace_gossipsub_beacon_attestation:type_name -> xatu.eth.v1.Attestation + 201, // 221: xatu.DecoratedEvent.libp2p_trace_gossipsub_blob_sidecar:type_name -> xatu.libp2p.gossipsub.eth.BlobSidecar + 15, // 222: xatu.DecoratedEvent.eth_v1_validators:type_name -> xatu.Validators + 202, // 223: xatu.DecoratedEvent.mev_relay_bid_trace_builder_block_submission:type_name -> xatu.mevrelay.BidTrace + 203, // 224: xatu.DecoratedEvent.mev_relay_payload_delivered:type_name -> xatu.mevrelay.ProposerPayloadDelivered + 179, // 225: xatu.DecoratedEvent.eth_v3_validator_block:type_name -> xatu.eth.v2.EventBlockV2 + 204, // 226: xatu.DecoratedEvent.mev_relay_validator_registration:type_name -> xatu.mevrelay.ValidatorRegistration + 205, // 227: xatu.DecoratedEvent.eth_v1_events_block_gossip:type_name -> xatu.eth.v1.EventBlockGossip + 206, // 228: xatu.DecoratedEvent.libp2p_trace_drop_rpc:type_name -> xatu.libp2p.DropRPC + 207, // 229: xatu.DecoratedEvent.libp2p_trace_leave:type_name -> xatu.libp2p.Leave + 208, // 230: xatu.DecoratedEvent.libp2p_trace_graft:type_name -> xatu.libp2p.Graft + 209, // 231: xatu.DecoratedEvent.libp2p_trace_prune:type_name -> xatu.libp2p.Prune + 210, // 232: xatu.DecoratedEvent.libp2p_trace_duplicate_message:type_name -> xatu.libp2p.DuplicateMessage + 211, // 233: xatu.DecoratedEvent.libp2p_trace_deliver_message:type_name -> xatu.libp2p.DeliverMessage + 212, // 234: xatu.DecoratedEvent.libp2p_trace_publish_message:type_name -> xatu.libp2p.PublishMessage + 213, // 235: xatu.DecoratedEvent.libp2p_trace_reject_message:type_name -> xatu.libp2p.RejectMessage + 214, // 236: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_ihave:type_name -> xatu.libp2p.ControlIHaveMetaItem + 215, // 237: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_iwant:type_name -> xatu.libp2p.ControlIWantMetaItem + 216, // 238: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_idontwant:type_name -> xatu.libp2p.ControlIDontWantMetaItem + 217, // 239: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_graft:type_name -> xatu.libp2p.ControlGraftMetaItem + 218, // 240: xatu.DecoratedEvent.libp2p_trace_rpc_meta_control_prune:type_name -> xatu.libp2p.ControlPruneMetaItem + 219, // 241: xatu.DecoratedEvent.libp2p_trace_rpc_meta_subscription:type_name -> xatu.libp2p.SubMetaItem + 220, // 242: xatu.DecoratedEvent.libp2p_trace_rpc_meta_message:type_name -> xatu.libp2p.MessageMetaItem + 221, // 243: xatu.DecoratedEvent.node_record_consensus:type_name -> xatu.noderecord.Consensus + 222, // 244: xatu.DecoratedEvent.node_record_execution:type_name -> xatu.noderecord.Execution + 223, // 245: xatu.DecoratedEvent.libp2p_trace_gossipsub_aggregate_and_proof:type_name -> xatu.eth.v1.SignedAggregateAttestationAndProofV2 + 224, // 246: xatu.DecoratedEvent.eth_v1_events_data_column_sidecar:type_name -> xatu.eth.v1.EventDataColumnSidecar + 225, // 247: xatu.DecoratedEvent.libp2p_trace_gossipsub_data_column_sidecar:type_name -> xatu.libp2p.gossipsub.eth.DataColumnSidecar + 226, // 248: xatu.DecoratedEvent.libp2p_trace_synthetic_heartbeat:type_name -> xatu.libp2p.SyntheticHeartbeat + 227, // 249: xatu.DecoratedEvent.libp2p_trace_identify:type_name -> xatu.libp2p.Identify + 228, // 250: xatu.DecoratedEvent.libp2p_trace_rpc_data_column_custody_probe:type_name -> xatu.libp2p.DataColumnCustodyProbe + 19, // 251: xatu.DecoratedEvent.execution_state_size:type_name -> xatu.ExecutionStateSize + 20, // 252: xatu.DecoratedEvent.consensus_engine_api_new_payload:type_name -> xatu.ConsensusEngineAPINewPayload + 21, // 253: xatu.DecoratedEvent.consensus_engine_api_get_blobs:type_name -> xatu.ConsensusEngineAPIGetBlobs + 22, // 254: xatu.DecoratedEvent.execution_engine_new_payload:type_name -> xatu.ExecutionEngineNewPayload + 23, // 255: xatu.DecoratedEvent.execution_engine_get_blobs:type_name -> xatu.ExecutionEngineGetBlobs + 229, // 256: xatu.DecoratedEvent.eth_v1_beacon_blob:type_name -> xatu.eth.v1.Blob + 16, // 257: xatu.DecoratedEvent.eth_v1_beacon_sync_committee:type_name -> xatu.SyncCommitteeData + 17, // 258: xatu.DecoratedEvent.eth_v2_beacon_block_sync_aggregate:type_name -> xatu.SyncAggregateData + 28, // 259: xatu.DecoratedEvent.execution_block_metrics:type_name -> xatu.ExecutionBlockMetrics + 230, // 260: xatu.DecoratedEvent.eth_v2_beacon_block_access_list:type_name -> xatu.eth.v1.BlockAccessListChange + 231, // 261: xatu.DecoratedEvent.eth_v1_events_execution_payload:type_name -> xatu.eth.v1.SignedExecutionPayloadEnvelope + 232, // 262: xatu.DecoratedEvent.eth_v1_events_payload_attestation:type_name -> xatu.eth.v1.PayloadAttestationMessage + 233, // 263: xatu.DecoratedEvent.eth_v1_events_execution_payload_bid:type_name -> xatu.eth.v1.SignedExecutionPayloadBid + 234, // 264: xatu.DecoratedEvent.eth_v1_events_proposer_preferences:type_name -> xatu.eth.v1.SignedProposerPreferences + 235, // 265: xatu.DecoratedEvent.eth_v2_beacon_block_payload_attestation:type_name -> xatu.eth.v1.PayloadAttestation + 233, // 266: xatu.DecoratedEvent.eth_v2_beacon_block_execution_payload_bid:type_name -> xatu.eth.v1.SignedExecutionPayloadBid + 236, // 267: xatu.DecoratedEvent.libp2p_trace_gossipsub_execution_payload_envelope:type_name -> xatu.libp2p.gossipsub.eth.ExecutionPayloadEnvelope + 237, // 268: xatu.DecoratedEvent.libp2p_trace_gossipsub_execution_payload_bid:type_name -> xatu.libp2p.gossipsub.eth.ExecutionPayloadBid + 238, // 269: xatu.DecoratedEvent.libp2p_trace_gossipsub_payload_attestation_message:type_name -> xatu.libp2p.gossipsub.eth.PayloadAttestationMessage + 239, // 270: xatu.DecoratedEvent.libp2p_trace_gossipsub_proposer_preferences:type_name -> xatu.libp2p.gossipsub.eth.ProposerPreferences + 135, // 271: xatu.ClientMeta.Ethereum.network:type_name -> xatu.ClientMeta.Ethereum.Network + 136, // 272: xatu.ClientMeta.Ethereum.execution:type_name -> xatu.ClientMeta.Ethereum.Execution + 137, // 273: xatu.ClientMeta.Ethereum.consensus:type_name -> xatu.ClientMeta.Ethereum.Consensus + 4, // 274: xatu.ClientMeta.AdditionalEthV1AttestationSourceData.epoch:type_name -> xatu.Epoch + 5, // 275: xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data.epoch:type_name -> xatu.EpochV2 + 4, // 276: xatu.ClientMeta.AdditionalEthV1AttestationTargetData.epoch:type_name -> xatu.Epoch + 5, // 277: xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data.epoch:type_name -> xatu.EpochV2 + 32, // 278: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceData + 34, // 279: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetData + 6, // 280: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.slot:type_name -> xatu.Slot + 4, // 281: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.epoch:type_name -> xatu.Epoch + 9, // 282: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.propagation:type_name -> xatu.Propagation + 11, // 283: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.attesting_validator:type_name -> xatu.AttestingValidator + 33, // 284: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 35, // 285: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 7, // 286: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.slot:type_name -> xatu.SlotV2 + 5, // 287: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.epoch:type_name -> xatu.EpochV2 + 10, // 288: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.propagation:type_name -> xatu.PropagationV2 + 12, // 289: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.attesting_validator:type_name -> xatu.AttestingValidatorV2 + 4, // 290: xatu.ClientMeta.AdditionalEthV1EventsHeadData.epoch:type_name -> xatu.Epoch + 6, // 291: xatu.ClientMeta.AdditionalEthV1EventsHeadData.slot:type_name -> xatu.Slot + 9, // 292: xatu.ClientMeta.AdditionalEthV1EventsHeadData.propagation:type_name -> xatu.Propagation + 5, // 293: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.epoch:type_name -> xatu.EpochV2 + 7, // 294: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.slot:type_name -> xatu.SlotV2 + 10, // 295: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.propagation:type_name -> xatu.PropagationV2 + 4, // 296: xatu.ClientMeta.AdditionalEthV1EventsBlockData.epoch:type_name -> xatu.Epoch + 6, // 297: xatu.ClientMeta.AdditionalEthV1EventsBlockData.slot:type_name -> xatu.Slot + 9, // 298: xatu.ClientMeta.AdditionalEthV1EventsBlockData.propagation:type_name -> xatu.Propagation + 5, // 299: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.epoch:type_name -> xatu.EpochV2 + 7, // 300: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.slot:type_name -> xatu.SlotV2 + 10, // 301: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.propagation:type_name -> xatu.PropagationV2 + 5, // 302: xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData.epoch:type_name -> xatu.EpochV2 + 7, // 303: xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData.slot:type_name -> xatu.SlotV2 + 10, // 304: xatu.ClientMeta.AdditionalEthV1EventsBlockGossipData.propagation:type_name -> xatu.PropagationV2 + 4, // 305: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitData.epoch:type_name -> xatu.Epoch + 5, // 306: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.epoch:type_name -> xatu.EpochV2 + 5, // 307: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 308: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.wallclock_slot:type_name -> xatu.SlotV2 + 4, // 309: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointData.epoch:type_name -> xatu.Epoch + 5, // 310: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointV2Data.epoch:type_name -> xatu.EpochV2 + 4, // 311: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.epoch:type_name -> xatu.Epoch + 6, // 312: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.slot:type_name -> xatu.Slot + 9, // 313: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.propagation:type_name -> xatu.Propagation + 5, // 314: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.epoch:type_name -> xatu.EpochV2 + 7, // 315: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.slot:type_name -> xatu.SlotV2 + 10, // 316: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.propagation:type_name -> xatu.PropagationV2 + 4, // 317: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.epoch:type_name -> xatu.Epoch + 6, // 318: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.slot:type_name -> xatu.Slot + 9, // 319: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.propagation:type_name -> xatu.Propagation + 5, // 320: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.epoch:type_name -> xatu.EpochV2 + 7, // 321: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.slot:type_name -> xatu.SlotV2 + 10, // 322: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.propagation:type_name -> xatu.PropagationV2 + 49, // 323: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofData.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData + 50, // 324: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofV2Data.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data + 4, // 325: xatu.ClientMeta.ForkChoiceSnapshot.request_epoch:type_name -> xatu.Epoch + 6, // 326: xatu.ClientMeta.ForkChoiceSnapshot.request_slot:type_name -> xatu.Slot + 154, // 327: xatu.ClientMeta.ForkChoiceSnapshot.timestamp:type_name -> google.protobuf.Timestamp + 5, // 328: xatu.ClientMeta.ForkChoiceSnapshotV2.request_epoch:type_name -> xatu.EpochV2 + 7, // 329: xatu.ClientMeta.ForkChoiceSnapshotV2.request_slot:type_name -> xatu.SlotV2 + 153, // 330: xatu.ClientMeta.ForkChoiceSnapshotV2.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value + 153, // 331: xatu.ClientMeta.ForkChoiceSnapshotV2.request_duration_ms:type_name -> google.protobuf.UInt64Value + 154, // 332: xatu.ClientMeta.ForkChoiceSnapshotV2.timestamp:type_name -> google.protobuf.Timestamp + 53, // 333: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshot + 54, // 334: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceV2Data.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 + 53, // 335: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshot + 53, // 336: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshot + 54, // 337: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 + 54, // 338: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 + 5, // 339: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.epoch:type_name -> xatu.EpochV2 + 7, // 340: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.slot:type_name -> xatu.SlotV2 + 5, // 341: xatu.ClientMeta.AdditionalEthV1BeaconSyncCommitteeData.epoch:type_name -> xatu.EpochV2 + 153, // 342: xatu.ClientMeta.AdditionalEthV1BeaconSyncCommitteeData.sync_committee_period:type_name -> google.protobuf.UInt64Value + 18, // 343: xatu.ClientMeta.AdditionalEthV2BeaconBlockSyncAggregateData.block:type_name -> xatu.BlockIdentifier + 153, // 344: xatu.ClientMeta.AdditionalEthV2BeaconBlockSyncAggregateData.sync_committee_period:type_name -> google.protobuf.UInt64Value + 153, // 345: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.nonce:type_name -> google.protobuf.UInt64Value + 153, // 346: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.gas:type_name -> google.protobuf.UInt64Value + 161, // 347: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.type:type_name -> google.protobuf.UInt32Value + 153, // 348: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.blob_gas:type_name -> google.protobuf.UInt64Value + 4, // 349: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.epoch:type_name -> xatu.Epoch + 6, // 350: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.slot:type_name -> xatu.Slot + 5, // 351: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.epoch:type_name -> xatu.EpochV2 + 7, // 352: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.slot:type_name -> xatu.SlotV2 + 153, // 353: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_count:type_name -> google.protobuf.UInt64Value + 153, // 354: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes:type_name -> google.protobuf.UInt64Value + 153, // 355: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes_compressed:type_name -> google.protobuf.UInt64Value + 153, // 356: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes:type_name -> google.protobuf.UInt64Value + 153, // 357: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes_compressed:type_name -> google.protobuf.UInt64Value + 18, // 358: xatu.ClientMeta.AdditionalEthV2BeaconBlockAttesterSlashingData.block:type_name -> xatu.BlockIdentifier + 18, // 359: xatu.ClientMeta.AdditionalEthV2BeaconBlockProposerSlashingData.block:type_name -> xatu.BlockIdentifier + 18, // 360: xatu.ClientMeta.AdditionalEthV2BeaconBlockVoluntaryExitData.block:type_name -> xatu.BlockIdentifier + 18, // 361: xatu.ClientMeta.AdditionalEthV2BeaconBlockDepositData.block:type_name -> xatu.BlockIdentifier + 18, // 362: xatu.ClientMeta.AdditionalEthV2BeaconBlockBLSToExecutionChangeData.block:type_name -> xatu.BlockIdentifier + 18, // 363: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.block:type_name -> xatu.BlockIdentifier + 153, // 364: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.position_in_block:type_name -> google.protobuf.UInt64Value + 18, // 365: xatu.ClientMeta.AdditionalEthV2BeaconBlockWithdrawalData.block:type_name -> xatu.BlockIdentifier + 18, // 366: xatu.ClientMeta.AdditionalEthV2BeaconBlockAccessListData.block:type_name -> xatu.BlockIdentifier + 153, // 367: xatu.ClientMeta.AdditionalEthV2BeaconBlockAccessListData.block_number:type_name -> google.protobuf.UInt64Value + 5, // 368: xatu.ClientMeta.AdditionalEthV1EventsExecutionPayloadData.epoch:type_name -> xatu.EpochV2 + 7, // 369: xatu.ClientMeta.AdditionalEthV1EventsExecutionPayloadData.slot:type_name -> xatu.SlotV2 + 10, // 370: xatu.ClientMeta.AdditionalEthV1EventsExecutionPayloadData.propagation:type_name -> xatu.PropagationV2 + 5, // 371: xatu.ClientMeta.AdditionalEthV1EventsPayloadAttestationData.epoch:type_name -> xatu.EpochV2 + 7, // 372: xatu.ClientMeta.AdditionalEthV1EventsPayloadAttestationData.slot:type_name -> xatu.SlotV2 + 10, // 373: xatu.ClientMeta.AdditionalEthV1EventsPayloadAttestationData.propagation:type_name -> xatu.PropagationV2 + 5, // 374: xatu.ClientMeta.AdditionalEthV1EventsExecutionPayloadBidData.epoch:type_name -> xatu.EpochV2 + 7, // 375: xatu.ClientMeta.AdditionalEthV1EventsExecutionPayloadBidData.slot:type_name -> xatu.SlotV2 + 10, // 376: xatu.ClientMeta.AdditionalEthV1EventsExecutionPayloadBidData.propagation:type_name -> xatu.PropagationV2 + 5, // 377: xatu.ClientMeta.AdditionalEthV1EventsProposerPreferencesData.epoch:type_name -> xatu.EpochV2 + 7, // 378: xatu.ClientMeta.AdditionalEthV1EventsProposerPreferencesData.slot:type_name -> xatu.SlotV2 + 10, // 379: xatu.ClientMeta.AdditionalEthV1EventsProposerPreferencesData.propagation:type_name -> xatu.PropagationV2 + 18, // 380: xatu.ClientMeta.AdditionalEthV2BeaconBlockPayloadAttestationData.block:type_name -> xatu.BlockIdentifier + 18, // 381: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionPayloadBidData.block:type_name -> xatu.BlockIdentifier + 5, // 382: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData.epoch:type_name -> xatu.EpochV2 + 7, // 383: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData.slot:type_name -> xatu.SlotV2 + 5, // 384: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 385: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 386: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData.propagation:type_name -> xatu.PropagationV2 + 240, // 387: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 241, // 388: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData.topic:type_name -> google.protobuf.StringValue + 161, // 389: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData.message_size:type_name -> google.protobuf.UInt32Value + 241, // 390: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData.message_id:type_name -> google.protobuf.StringValue + 5, // 391: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadBidData.epoch:type_name -> xatu.EpochV2 + 7, // 392: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadBidData.slot:type_name -> xatu.SlotV2 + 5, // 393: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadBidData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 394: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadBidData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 395: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadBidData.propagation:type_name -> xatu.PropagationV2 + 240, // 396: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadBidData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 241, // 397: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadBidData.topic:type_name -> google.protobuf.StringValue + 161, // 398: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadBidData.message_size:type_name -> google.protobuf.UInt32Value + 241, // 399: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubExecutionPayloadBidData.message_id:type_name -> google.protobuf.StringValue + 5, // 400: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData.epoch:type_name -> xatu.EpochV2 + 7, // 401: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData.slot:type_name -> xatu.SlotV2 + 5, // 402: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 403: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 404: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData.propagation:type_name -> xatu.PropagationV2 + 240, // 405: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 241, // 406: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData.topic:type_name -> google.protobuf.StringValue + 161, // 407: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData.message_size:type_name -> google.protobuf.UInt32Value + 241, // 408: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData.message_id:type_name -> google.protobuf.StringValue + 5, // 409: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubProposerPreferencesData.epoch:type_name -> xatu.EpochV2 + 7, // 410: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubProposerPreferencesData.slot:type_name -> xatu.SlotV2 + 5, // 411: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubProposerPreferencesData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 412: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubProposerPreferencesData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 413: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubProposerPreferencesData.propagation:type_name -> xatu.PropagationV2 + 240, // 414: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubProposerPreferencesData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 241, // 415: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubProposerPreferencesData.topic:type_name -> google.protobuf.StringValue + 161, // 416: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubProposerPreferencesData.message_size:type_name -> google.protobuf.UInt32Value + 241, // 417: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubProposerPreferencesData.message_id:type_name -> google.protobuf.StringValue + 153, // 418: xatu.ClientMeta.AttestationDataSnapshot.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value + 153, // 419: xatu.ClientMeta.AttestationDataSnapshot.request_duration_ms:type_name -> google.protobuf.UInt64Value + 154, // 420: xatu.ClientMeta.AttestationDataSnapshot.timestamp:type_name -> google.protobuf.Timestamp + 33, // 421: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 35, // 422: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 5, // 423: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.epoch:type_name -> xatu.EpochV2 + 7, // 424: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.slot:type_name -> xatu.SlotV2 + 84, // 425: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.Snapshot:type_name -> xatu.ClientMeta.AttestationDataSnapshot + 5, // 426: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 427: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.slot:type_name -> xatu.SlotV2 + 10, // 428: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.propagation:type_name -> xatu.PropagationV2 + 5, // 429: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 430: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.slot:type_name -> xatu.SlotV2 + 10, // 431: xatu.ClientMeta.AdditionalEthV1EventsDataColumnSidecarData.propagation:type_name -> xatu.PropagationV2 + 5, // 432: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 433: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.slot:type_name -> xatu.SlotV2 + 153, // 434: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_size:type_name -> google.protobuf.UInt64Value + 153, // 435: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_empty_size:type_name -> google.protobuf.UInt64Value + 33, // 436: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 35, // 437: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 7, // 438: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.slot:type_name -> xatu.SlotV2 + 5, // 439: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.epoch:type_name -> xatu.EpochV2 + 10, // 440: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.propagation:type_name -> xatu.PropagationV2 + 12, // 441: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 + 242, // 442: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.libp2p.Peer + 161, // 443: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.subnet:type_name -> google.protobuf.UInt32Value + 243, // 444: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.validated:type_name -> google.protobuf.BoolValue + 5, // 445: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.epoch:type_name -> xatu.EpochV2 + 7, // 446: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.slot:type_name -> xatu.SlotV2 + 18, // 447: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.block:type_name -> xatu.BlockIdentifier + 153, // 448: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.position_in_block:type_name -> google.protobuf.UInt64Value + 5, // 449: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.epoch:type_name -> xatu.EpochV2 + 7, // 450: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.slot:type_name -> xatu.SlotV2 + 33, // 451: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 35, // 452: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 240, // 453: xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 454: xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 455: xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 456: xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 457: xatu.ClientMeta.AdditionalLibP2PTraceDropRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 458: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIHaveData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 459: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIWantData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 460: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlIDontWantData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 461: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlGraftData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 462: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaControlPruneData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 463: xatu.ClientMeta.AdditionalLibP2PTraceJoinData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 464: xatu.ClientMeta.AdditionalLibP2PTraceLeaveData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 465: xatu.ClientMeta.AdditionalLibP2PTraceGraftData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 466: xatu.ClientMeta.AdditionalLibP2PTracePruneData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 467: xatu.ClientMeta.AdditionalLibP2PTraceDuplicateMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 468: xatu.ClientMeta.AdditionalLibP2PTraceDeliverMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 469: xatu.ClientMeta.AdditionalLibP2PTracePublishMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 470: xatu.ClientMeta.AdditionalLibP2PTraceRejectMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 471: xatu.ClientMeta.AdditionalLibP2PTraceConnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 472: xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 473: xatu.ClientMeta.AdditionalLibP2PTraceSyntheticHeartbeatData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 474: xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 475: xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 476: xatu.ClientMeta.AdditionalLibP2PTraceIdentifyData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 477: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 5, // 478: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.epoch:type_name -> xatu.EpochV2 + 7, // 479: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.slot:type_name -> xatu.SlotV2 + 5, // 480: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 481: xatu.ClientMeta.AdditionalLibP2PTraceRpcDataColumnCustodyProbeData.wallclock_slot:type_name -> xatu.SlotV2 + 240, // 482: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaSubscriptionData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 240, // 483: xatu.ClientMeta.AdditionalLibP2PTraceRPCMetaMessageData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 5, // 484: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.epoch:type_name -> xatu.EpochV2 + 7, // 485: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.slot:type_name -> xatu.SlotV2 + 5, // 486: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 487: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 488: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.propagation:type_name -> xatu.PropagationV2 + 240, // 489: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 241, // 490: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.topic:type_name -> google.protobuf.StringValue + 161, // 491: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_size:type_name -> google.protobuf.UInt32Value + 241, // 492: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_id:type_name -> google.protobuf.StringValue + 5, // 493: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData.epoch:type_name -> xatu.EpochV2 + 5, // 494: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData.epoch:type_name -> xatu.EpochV2 + 120, // 495: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.source:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData + 121, // 496: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.target:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData + 7, // 497: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.slot:type_name -> xatu.SlotV2 + 5, // 498: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.epoch:type_name -> xatu.EpochV2 + 10, // 499: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.propagation:type_name -> xatu.PropagationV2 + 12, // 500: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 + 5, // 501: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 502: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_slot:type_name -> xatu.SlotV2 + 240, // 503: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 241, // 504: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.topic:type_name -> google.protobuf.StringValue + 161, // 505: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_size:type_name -> google.protobuf.UInt32Value + 241, // 506: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_id:type_name -> google.protobuf.StringValue + 5, // 507: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.epoch:type_name -> xatu.EpochV2 + 7, // 508: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.slot:type_name -> xatu.SlotV2 + 5, // 509: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 510: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 511: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.propagation:type_name -> xatu.PropagationV2 + 153, // 512: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.aggregator_index:type_name -> google.protobuf.UInt64Value + 240, // 513: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 241, // 514: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.topic:type_name -> google.protobuf.StringValue + 161, // 515: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.message_size:type_name -> google.protobuf.UInt32Value + 241, // 516: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubAggregateAndProofData.message_id:type_name -> google.protobuf.StringValue + 5, // 517: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 518: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.slot:type_name -> xatu.SlotV2 + 5, // 519: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 520: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 521: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.propagation:type_name -> xatu.PropagationV2 + 240, // 522: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 241, // 523: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.topic:type_name -> google.protobuf.StringValue + 161, // 524: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_size:type_name -> google.protobuf.UInt32Value + 241, // 525: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_id:type_name -> google.protobuf.StringValue + 5, // 526: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.epoch:type_name -> xatu.EpochV2 + 7, // 527: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.slot:type_name -> xatu.SlotV2 + 5, // 528: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 + 7, // 529: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.wallclock_slot:type_name -> xatu.SlotV2 + 10, // 530: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.propagation:type_name -> xatu.PropagationV2 + 240, // 531: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 241, // 532: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.topic:type_name -> google.protobuf.StringValue + 161, // 533: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.message_size:type_name -> google.protobuf.UInt32Value + 241, // 534: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubDataColumnSidecarData.message_id:type_name -> google.protobuf.StringValue + 5, // 535: xatu.ClientMeta.AdditionalEthV1ValidatorsData.epoch:type_name -> xatu.EpochV2 + 244, // 536: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.relay:type_name -> xatu.mevrelay.Relay + 7, // 537: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.slot:type_name -> xatu.SlotV2 + 7, // 538: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.wallclock_slot:type_name -> xatu.SlotV2 + 5, // 539: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.epoch:type_name -> xatu.EpochV2 + 5, // 540: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.wallclock_epoch:type_name -> xatu.EpochV2 + 153, // 541: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.requested_at_slot_time:type_name -> google.protobuf.UInt64Value + 153, // 542: xatu.ClientMeta.AdditionalMevRelayBidTraceBuilderBlockSubmissionData.response_at_slot_time:type_name -> google.protobuf.UInt64Value + 244, // 543: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.relay:type_name -> xatu.mevrelay.Relay + 7, // 544: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.slot:type_name -> xatu.SlotV2 + 7, // 545: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.wallclock_slot:type_name -> xatu.SlotV2 + 5, // 546: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.epoch:type_name -> xatu.EpochV2 + 5, // 547: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.wallclock_epoch:type_name -> xatu.EpochV2 + 153, // 548: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.requested_at_slot_time:type_name -> google.protobuf.UInt64Value + 153, // 549: xatu.ClientMeta.AdditionalMevRelayPayloadDeliveredData.response_at_slot_time:type_name -> google.protobuf.UInt64Value + 5, // 550: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.epoch:type_name -> xatu.EpochV2 + 7, // 551: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.slot:type_name -> xatu.SlotV2 + 153, // 552: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_count:type_name -> google.protobuf.UInt64Value + 153, // 553: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_total_bytes:type_name -> google.protobuf.UInt64Value + 153, // 554: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.transactions_total_bytes_compressed:type_name -> google.protobuf.UInt64Value + 153, // 555: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.total_bytes:type_name -> google.protobuf.UInt64Value + 153, // 556: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.total_bytes_compressed:type_name -> google.protobuf.UInt64Value + 153, // 557: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.request_duration_ms:type_name -> google.protobuf.UInt64Value + 154, // 558: xatu.ClientMeta.AdditionalEthV3ValidatorBlockData.requested_at:type_name -> google.protobuf.Timestamp + 244, // 559: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.relay:type_name -> xatu.mevrelay.Relay + 7, // 560: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.slot:type_name -> xatu.SlotV2 + 7, // 561: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.wallclock_slot:type_name -> xatu.SlotV2 + 5, // 562: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.epoch:type_name -> xatu.EpochV2 + 5, // 563: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.wallclock_epoch:type_name -> xatu.EpochV2 + 153, // 564: xatu.ClientMeta.AdditionalMevRelayValidatorRegistrationData.validator_index:type_name -> google.protobuf.UInt64Value + 5, // 565: xatu.ClientMeta.AdditionalNodeRecordConsensusData.finalized_epoch:type_name -> xatu.EpochV2 + 7, // 566: xatu.ClientMeta.AdditionalNodeRecordConsensusData.head_slot:type_name -> xatu.SlotV2 + 5, // 567: xatu.ClientMeta.AdditionalNodeRecordConsensusData.head_epoch:type_name -> xatu.EpochV2 + 5, // 568: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData.epoch:type_name -> xatu.EpochV2 + 7, // 569: xatu.ClientMeta.AdditionalConsensusEngineAPINewPayloadData.slot:type_name -> xatu.SlotV2 + 5, // 570: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData.epoch:type_name -> xatu.EpochV2 + 7, // 571: xatu.ClientMeta.AdditionalConsensusEngineAPIGetBlobsData.slot:type_name -> xatu.SlotV2 + 5, // 572: xatu.ClientMeta.AdditionalEthV1BeaconBlobData.epoch:type_name -> xatu.EpochV2 + 7, // 573: xatu.ClientMeta.AdditionalEthV1BeaconBlobData.slot:type_name -> xatu.SlotV2 + 8, // 574: xatu.ClientMeta.Ethereum.Execution.fork_id:type_name -> xatu.ForkID + 154, // 575: xatu.ServerMeta.Event.received_date_time:type_name -> google.protobuf.Timestamp + 139, // 576: xatu.ServerMeta.Client.geo:type_name -> xatu.ServerMeta.Geo + 139, // 577: xatu.ServerMeta.Peer.geo:type_name -> xatu.ServerMeta.Geo + 141, // 578: xatu.ServerMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.ServerMeta.Peer + 141, // 579: xatu.ServerMeta.AdditionalLibp2PTraceConnectedData.peer:type_name -> xatu.ServerMeta.Peer + 141, // 580: xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData.peer:type_name -> xatu.ServerMeta.Peer + 141, // 581: xatu.ServerMeta.AdditionalLibP2PTraceSyntheticHeartbeatData.peer:type_name -> xatu.ServerMeta.Peer + 141, // 582: xatu.ServerMeta.AdditionalLibp2PTraceIdentifyData.peer:type_name -> xatu.ServerMeta.Peer + 139, // 583: xatu.ServerMeta.AdditionalNodeRecordConsensusData.geo:type_name -> xatu.ServerMeta.Geo + 139, // 584: xatu.ServerMeta.AdditionalNodeRecordExecutionData.geo:type_name -> xatu.ServerMeta.Geo + 153, // 585: xatu.ExecutionBlockMetrics.StateReads.accounts:type_name -> google.protobuf.UInt64Value + 153, // 586: xatu.ExecutionBlockMetrics.StateReads.storage_slots:type_name -> google.protobuf.UInt64Value + 153, // 587: xatu.ExecutionBlockMetrics.StateReads.code:type_name -> google.protobuf.UInt64Value + 153, // 588: xatu.ExecutionBlockMetrics.StateReads.code_bytes:type_name -> google.protobuf.UInt64Value + 153, // 589: xatu.ExecutionBlockMetrics.StateWrites.accounts:type_name -> google.protobuf.UInt64Value + 153, // 590: xatu.ExecutionBlockMetrics.StateWrites.accounts_deleted:type_name -> google.protobuf.UInt64Value + 153, // 591: xatu.ExecutionBlockMetrics.StateWrites.storage_slots:type_name -> google.protobuf.UInt64Value + 153, // 592: xatu.ExecutionBlockMetrics.StateWrites.storage_slots_deleted:type_name -> google.protobuf.UInt64Value + 153, // 593: xatu.ExecutionBlockMetrics.StateWrites.code:type_name -> google.protobuf.UInt64Value + 153, // 594: xatu.ExecutionBlockMetrics.StateWrites.code_bytes:type_name -> google.protobuf.UInt64Value + 245, // 595: xatu.ExecutionBlockMetrics.CacheEntry.hits:type_name -> google.protobuf.Int64Value + 245, // 596: xatu.ExecutionBlockMetrics.CacheEntry.misses:type_name -> google.protobuf.Int64Value + 163, // 597: xatu.ExecutionBlockMetrics.CacheEntry.hit_rate:type_name -> google.protobuf.DoubleValue + 245, // 598: xatu.ExecutionBlockMetrics.CodeCacheEntry.hits:type_name -> google.protobuf.Int64Value + 245, // 599: xatu.ExecutionBlockMetrics.CodeCacheEntry.misses:type_name -> google.protobuf.Int64Value + 163, // 600: xatu.ExecutionBlockMetrics.CodeCacheEntry.hit_rate:type_name -> google.protobuf.DoubleValue + 245, // 601: xatu.ExecutionBlockMetrics.CodeCacheEntry.hit_bytes:type_name -> google.protobuf.Int64Value + 245, // 602: xatu.ExecutionBlockMetrics.CodeCacheEntry.miss_bytes:type_name -> google.protobuf.Int64Value + 2, // 603: xatu.EventIngester.CreateEvents:input_type -> xatu.CreateEventsRequest + 3, // 604: xatu.EventIngester.CreateEvents:output_type -> xatu.CreateEventsResponse + 604, // [604:605] is the sub-list for method output_type + 603, // [603:604] is the sub-list for method input_type + 603, // [603:603] is the sub-list for extension type_name + 603, // [603:603] is the sub-list for extension extendee + 0, // [0:603] is the sub-list for field type_name } func init() { file_pkg_proto_xatu_event_ingester_proto_init() } @@ -18328,7 +19648,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[72].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AttestationDataSnapshot); i { + switch v := v.(*ClientMeta_AdditionalEthV1EventsExecutionPayloadData); i { case 0: return &v.state case 1: @@ -18340,7 +19660,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[73].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalEthV1ValidatorAttestationDataData); i { + switch v := v.(*ClientMeta_AdditionalEthV1EventsPayloadAttestationData); i { case 0: return &v.state case 1: @@ -18352,7 +19672,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[74].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalEthV1EventsBlobSidecarData); i { + switch v := v.(*ClientMeta_AdditionalEthV1EventsExecutionPayloadBidData); i { case 0: return &v.state case 1: @@ -18364,7 +19684,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[75].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalEthV1EventsDataColumnSidecarData); i { + switch v := v.(*ClientMeta_AdditionalEthV1EventsProposerPreferencesData); i { case 0: return &v.state case 1: @@ -18376,7 +19696,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[76].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalEthV1BeaconBlobSidecarData); i { + switch v := v.(*ClientMeta_AdditionalEthV2BeaconBlockPayloadAttestationData); i { case 0: return &v.state case 1: @@ -18388,7 +19708,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[77].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalBeaconP2PAttestationData); i { + switch v := v.(*ClientMeta_AdditionalEthV2BeaconBlockExecutionPayloadBidData); i { case 0: return &v.state case 1: @@ -18400,7 +19720,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[78].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalEthV1ProposerDutyData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData); i { case 0: return &v.state case 1: @@ -18412,7 +19732,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[79].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubExecutionPayloadBidData); i { case 0: return &v.state case 1: @@ -18424,7 +19744,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[80].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceAddPeerData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData); i { case 0: return &v.state case 1: @@ -18436,7 +19756,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[81].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRemovePeerData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubProposerPreferencesData); i { case 0: return &v.state case 1: @@ -18448,7 +19768,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[82].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRecvRPCData); i { + switch v := v.(*ClientMeta_AttestationDataSnapshot); i { case 0: return &v.state case 1: @@ -18460,7 +19780,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[83].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceSendRPCData); i { + switch v := v.(*ClientMeta_AdditionalEthV1ValidatorAttestationDataData); i { case 0: return &v.state case 1: @@ -18472,7 +19792,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[84].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceDropRPCData); i { + switch v := v.(*ClientMeta_AdditionalEthV1EventsBlobSidecarData); i { case 0: return &v.state case 1: @@ -18484,7 +19804,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[85].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData); i { + switch v := v.(*ClientMeta_AdditionalEthV1EventsDataColumnSidecarData); i { case 0: return &v.state case 1: @@ -18496,7 +19816,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[86].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData); i { + switch v := v.(*ClientMeta_AdditionalEthV1BeaconBlobSidecarData); i { case 0: return &v.state case 1: @@ -18508,7 +19828,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[87].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData); i { + switch v := v.(*ClientMeta_AdditionalBeaconP2PAttestationData); i { case 0: return &v.state case 1: @@ -18520,7 +19840,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[88].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData); i { + switch v := v.(*ClientMeta_AdditionalEthV1ProposerDutyData); i { case 0: return &v.state case 1: @@ -18532,7 +19852,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[89].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData); i { + switch v := v.(*ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData); i { case 0: return &v.state case 1: @@ -18544,7 +19864,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[90].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceJoinData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceAddPeerData); i { case 0: return &v.state case 1: @@ -18556,7 +19876,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[91].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceLeaveData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRemovePeerData); i { case 0: return &v.state case 1: @@ -18568,7 +19888,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[92].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceGraftData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRecvRPCData); i { case 0: return &v.state case 1: @@ -18580,7 +19900,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[93].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTracePruneData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceSendRPCData); i { case 0: return &v.state case 1: @@ -18592,7 +19912,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[94].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceDuplicateMessageData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceDropRPCData); i { case 0: return &v.state case 1: @@ -18604,7 +19924,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[95].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceDeliverMessageData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIHaveData); i { case 0: return &v.state case 1: @@ -18616,7 +19936,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[96].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTracePublishMessageData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIWantData); i { case 0: return &v.state case 1: @@ -18628,7 +19948,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[97].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRejectMessageData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlIDontWantData); i { case 0: return &v.state case 1: @@ -18640,7 +19960,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[98].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceConnectedData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlGraftData); i { case 0: return &v.state case 1: @@ -18652,7 +19972,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[99].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceDisconnectedData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaControlPruneData); i { case 0: return &v.state case 1: @@ -18664,7 +19984,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[100].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceJoinData); i { case 0: return &v.state case 1: @@ -18676,7 +19996,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[101].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceHandleMetadataData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceLeaveData); i { case 0: return &v.state case 1: @@ -18688,7 +20008,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[102].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceHandleStatusData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGraftData); i { case 0: return &v.state case 1: @@ -18700,7 +20020,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[103].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceIdentifyData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTracePruneData); i { case 0: return &v.state case 1: @@ -18712,7 +20032,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[104].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceDuplicateMessageData); i { case 0: return &v.state case 1: @@ -18724,7 +20044,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[105].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceDeliverMessageData); i { case 0: return &v.state case 1: @@ -18736,7 +20056,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[106].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTracePublishMessageData); i { case 0: return &v.state case 1: @@ -18748,7 +20068,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[107].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRejectMessageData); i { case 0: return &v.state case 1: @@ -18760,7 +20080,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[108].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceConnectedData); i { case 0: return &v.state case 1: @@ -18772,7 +20092,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[109].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceDisconnectedData); i { case 0: return &v.state case 1: @@ -18784,7 +20104,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[110].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceSyntheticHeartbeatData); i { case 0: return &v.state case 1: @@ -18796,7 +20116,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[111].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceHandleMetadataData); i { case 0: return &v.state case 1: @@ -18808,7 +20128,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[112].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceHandleStatusData); i { case 0: return &v.state case 1: @@ -18820,7 +20140,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[113].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceIdentifyData); i { case 0: return &v.state case 1: @@ -18832,7 +20152,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[114].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalEthV1ValidatorsData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRpcDataColumnCustodyProbeData); i { case 0: return &v.state case 1: @@ -18844,7 +20164,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[115].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaSubscriptionData); i { case 0: return &v.state case 1: @@ -18856,7 +20176,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[116].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalMevRelayPayloadDeliveredData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceRPCMetaMessageData); i { case 0: return &v.state case 1: @@ -18868,7 +20188,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[117].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalEthV3ValidatorBlockData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData); i { case 0: return &v.state case 1: @@ -18880,7 +20200,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[118].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalMevRelayValidatorRegistrationData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData); i { case 0: return &v.state case 1: @@ -18892,7 +20212,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[119].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalNodeRecordConsensusData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData); i { case 0: return &v.state case 1: @@ -18904,7 +20224,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[120].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalConsensusEngineAPINewPayloadData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData); i { case 0: return &v.state case 1: @@ -18916,7 +20236,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[121].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalConsensusEngineAPIGetBlobsData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubAggregateAndProofData); i { case 0: return &v.state case 1: @@ -18928,7 +20248,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[122].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_AdditionalEthV1BeaconBlobData); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData); i { case 0: return &v.state case 1: @@ -18940,7 +20260,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[123].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_Ethereum_Network); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubDataColumnSidecarData); i { case 0: return &v.state case 1: @@ -18952,7 +20272,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[124].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_Ethereum_Execution); i { + switch v := v.(*ClientMeta_AdditionalEthV1ValidatorsData); i { case 0: return &v.state case 1: @@ -18964,7 +20284,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[125].Exporter = func(v any, i int) any { - switch v := v.(*ClientMeta_Ethereum_Consensus); i { + switch v := v.(*ClientMeta_AdditionalMevRelayBidTraceBuilderBlockSubmissionData); i { case 0: return &v.state case 1: @@ -18976,7 +20296,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[126].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_Event); i { + switch v := v.(*ClientMeta_AdditionalMevRelayPayloadDeliveredData); i { case 0: return &v.state case 1: @@ -18988,7 +20308,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[127].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_Geo); i { + switch v := v.(*ClientMeta_AdditionalEthV3ValidatorBlockData); i { case 0: return &v.state case 1: @@ -19000,7 +20320,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[128].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_Client); i { + switch v := v.(*ClientMeta_AdditionalMevRelayValidatorRegistrationData); i { case 0: return &v.state case 1: @@ -19012,7 +20332,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[129].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_Peer); i { + switch v := v.(*ClientMeta_AdditionalNodeRecordConsensusData); i { case 0: return &v.state case 1: @@ -19024,7 +20344,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[130].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_AdditionalBeaconP2PAttestationData); i { + switch v := v.(*ClientMeta_AdditionalConsensusEngineAPINewPayloadData); i { case 0: return &v.state case 1: @@ -19036,7 +20356,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[131].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_AdditionalLibp2PTraceConnectedData); i { + switch v := v.(*ClientMeta_AdditionalConsensusEngineAPIGetBlobsData); i { case 0: return &v.state case 1: @@ -19048,7 +20368,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[132].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_AdditionalLibp2PTraceDisconnectedData); i { + switch v := v.(*ClientMeta_AdditionalEthV1BeaconBlobData); i { case 0: return &v.state case 1: @@ -19060,7 +20380,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[133].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData); i { + switch v := v.(*ClientMeta_Ethereum_Network); i { case 0: return &v.state case 1: @@ -19072,7 +20392,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[134].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_AdditionalLibp2PTraceIdentifyData); i { + switch v := v.(*ClientMeta_Ethereum_Execution); i { case 0: return &v.state case 1: @@ -19084,7 +20404,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[135].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_AdditionalNodeRecordConsensusData); i { + switch v := v.(*ClientMeta_Ethereum_Consensus); i { case 0: return &v.state case 1: @@ -19096,7 +20416,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[136].Exporter = func(v any, i int) any { - switch v := v.(*ServerMeta_AdditionalNodeRecordExecutionData); i { + switch v := v.(*ServerMeta_Event); i { case 0: return &v.state case 1: @@ -19108,7 +20428,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[137].Exporter = func(v any, i int) any { - switch v := v.(*ExecutionBlockMetrics_StateReads); i { + switch v := v.(*ServerMeta_Geo); i { case 0: return &v.state case 1: @@ -19120,7 +20440,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[138].Exporter = func(v any, i int) any { - switch v := v.(*ExecutionBlockMetrics_StateWrites); i { + switch v := v.(*ServerMeta_Client); i { case 0: return &v.state case 1: @@ -19132,7 +20452,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[139].Exporter = func(v any, i int) any { - switch v := v.(*ExecutionBlockMetrics_CacheEntry); i { + switch v := v.(*ServerMeta_Peer); i { case 0: return &v.state case 1: @@ -19144,6 +20464,126 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[140].Exporter = func(v any, i int) any { + switch v := v.(*ServerMeta_AdditionalBeaconP2PAttestationData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_xatu_event_ingester_proto_msgTypes[141].Exporter = func(v any, i int) any { + switch v := v.(*ServerMeta_AdditionalLibp2PTraceConnectedData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_xatu_event_ingester_proto_msgTypes[142].Exporter = func(v any, i int) any { + switch v := v.(*ServerMeta_AdditionalLibp2PTraceDisconnectedData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_xatu_event_ingester_proto_msgTypes[143].Exporter = func(v any, i int) any { + switch v := v.(*ServerMeta_AdditionalLibP2PTraceSyntheticHeartbeatData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_xatu_event_ingester_proto_msgTypes[144].Exporter = func(v any, i int) any { + switch v := v.(*ServerMeta_AdditionalLibp2PTraceIdentifyData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_xatu_event_ingester_proto_msgTypes[145].Exporter = func(v any, i int) any { + switch v := v.(*ServerMeta_AdditionalNodeRecordConsensusData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_xatu_event_ingester_proto_msgTypes[146].Exporter = func(v any, i int) any { + switch v := v.(*ServerMeta_AdditionalNodeRecordExecutionData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_xatu_event_ingester_proto_msgTypes[147].Exporter = func(v any, i int) any { + switch v := v.(*ExecutionBlockMetrics_StateReads); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_xatu_event_ingester_proto_msgTypes[148].Exporter = func(v any, i int) any { + switch v := v.(*ExecutionBlockMetrics_StateWrites); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_xatu_event_ingester_proto_msgTypes[149].Exporter = func(v any, i int) any { + switch v := v.(*ExecutionBlockMetrics_CacheEntry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_xatu_event_ingester_proto_msgTypes[150].Exporter = func(v any, i int) any { switch v := v.(*ExecutionBlockMetrics_CodeCacheEntry); i { case 0: return &v.state @@ -19239,6 +20679,16 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { (*ClientMeta_EthV2BeaconBlockSyncAggregate)(nil), (*ClientMeta_Libp2PTraceIdentify)(nil), (*ClientMeta_EthV2BeaconBlockAccessList)(nil), + (*ClientMeta_EthV1EventsExecutionPayload)(nil), + (*ClientMeta_EthV1EventsPayloadAttestation)(nil), + (*ClientMeta_EthV1EventsExecutionPayloadBid)(nil), + (*ClientMeta_EthV1EventsProposerPreferences)(nil), + (*ClientMeta_EthV2BeaconBlockPayloadAttestation)(nil), + (*ClientMeta_EthV2BeaconBlockExecutionPayloadBid)(nil), + (*ClientMeta_Libp2PTraceGossipsubExecutionPayloadEnvelope)(nil), + (*ClientMeta_Libp2PTraceGossipsubExecutionPayloadBid)(nil), + (*ClientMeta_Libp2PTraceGossipsubPayloadAttestationMessage)(nil), + (*ClientMeta_Libp2PTraceGossipsubProposerPreferences)(nil), } file_pkg_proto_xatu_event_ingester_proto_msgTypes[23].OneofWrappers = []any{ (*ServerMeta_BEACON_P2P_ATTESTATION)(nil), @@ -19354,7 +20804,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pkg_proto_xatu_event_ingester_proto_rawDesc, NumEnums: 2, - NumMessages: 141, + NumMessages: 151, NumExtensions: 0, NumServices: 1, }, diff --git a/pkg/proto/xatu/event_ingester.proto b/pkg/proto/xatu/event_ingester.proto index 8d0403ba2..c89615364 100644 --- a/pkg/proto/xatu/event_ingester.proto +++ b/pkg/proto/xatu/event_ingester.proto @@ -933,6 +933,108 @@ message ClientMeta { string block_hash = 3; } + // EIP-7732 ePBS Additional Data messages + + // AdditionalEthV1EventsExecutionPayloadData contains additional data about + // execution payload envelope arrivals from the beacon API SSE. + message AdditionalEthV1EventsExecutionPayloadData { + EpochV2 epoch = 1; + SlotV2 slot = 2; + PropagationV2 propagation = 3; + } + + // AdditionalEthV1EventsPayloadAttestationData contains additional data about + // individual PTC payload attestation messages from the beacon API SSE. + message AdditionalEthV1EventsPayloadAttestationData { + EpochV2 epoch = 1; + SlotV2 slot = 2; + PropagationV2 propagation = 3; + } + + // AdditionalEthV1EventsExecutionPayloadBidData contains additional data about + // builder bids from the beacon API SSE. + message AdditionalEthV1EventsExecutionPayloadBidData { + EpochV2 epoch = 1; + SlotV2 slot = 2; + PropagationV2 propagation = 3; + } + + // AdditionalEthV1EventsProposerPreferencesData contains additional data about + // proposer preferences from the beacon API SSE. + message AdditionalEthV1EventsProposerPreferencesData { + EpochV2 epoch = 1; + SlotV2 slot = 2; + PropagationV2 propagation = 3; + } + + // AdditionalEthV2BeaconBlockPayloadAttestationData contains additional data + // about aggregated PTC payload attestations derived from cannon blocks. + message AdditionalEthV2BeaconBlockPayloadAttestationData { + BlockIdentifier block = 1; + } + + // AdditionalEthV2BeaconBlockExecutionPayloadBidData contains additional data + // about the winning execution payload bid derived from cannon blocks. + message AdditionalEthV2BeaconBlockExecutionPayloadBidData { + BlockIdentifier block = 1; + } + + // AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData contains additional + // data about execution payload envelope gossip from libp2p. + message AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData { + EpochV2 epoch = 1; + SlotV2 slot = 2; + EpochV2 wallclock_epoch = 3 [ json_name = "wallclock_epoch" ]; + SlotV2 wallclock_slot = 4 [ json_name = "wallclock_slot" ]; + PropagationV2 propagation = 5; + xatu.libp2p.TraceEventMetadata metadata = 6; + google.protobuf.StringValue topic = 7; + google.protobuf.UInt32Value message_size = 8 [ json_name = "message_size" ]; + google.protobuf.StringValue message_id = 9 [ json_name = "message_id" ]; + } + + // AdditionalLibP2PTraceGossipSubExecutionPayloadBidData contains additional + // data about builder bid gossip from libp2p. + message AdditionalLibP2PTraceGossipSubExecutionPayloadBidData { + EpochV2 epoch = 1; + SlotV2 slot = 2; + EpochV2 wallclock_epoch = 3 [ json_name = "wallclock_epoch" ]; + SlotV2 wallclock_slot = 4 [ json_name = "wallclock_slot" ]; + PropagationV2 propagation = 5; + xatu.libp2p.TraceEventMetadata metadata = 6; + google.protobuf.StringValue topic = 7; + google.protobuf.UInt32Value message_size = 8 [ json_name = "message_size" ]; + google.protobuf.StringValue message_id = 9 [ json_name = "message_id" ]; + } + + // AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData contains additional + // data about PTC attestation gossip from libp2p. + message AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData { + EpochV2 epoch = 1; + SlotV2 slot = 2; + EpochV2 wallclock_epoch = 3 [ json_name = "wallclock_epoch" ]; + SlotV2 wallclock_slot = 4 [ json_name = "wallclock_slot" ]; + PropagationV2 propagation = 5; + xatu.libp2p.TraceEventMetadata metadata = 6; + google.protobuf.StringValue topic = 7; + google.protobuf.UInt32Value message_size = 8 [ json_name = "message_size" ]; + google.protobuf.StringValue message_id = 9 [ json_name = "message_id" ]; + } + + // AdditionalLibP2PTraceGossipSubProposerPreferencesData contains additional + // data about proposer preferences gossip from libp2p. + message AdditionalLibP2PTraceGossipSubProposerPreferencesData { + EpochV2 epoch = 1; + SlotV2 slot = 2; + EpochV2 wallclock_epoch = 3 [ json_name = "wallclock_epoch" ]; + SlotV2 wallclock_slot = 4 [ json_name = "wallclock_slot" ]; + PropagationV2 propagation = 5; + xatu.libp2p.TraceEventMetadata metadata = 6; + google.protobuf.StringValue topic = 7; + google.protobuf.UInt32Value message_size = 8 [ json_name = "message_size" ]; + google.protobuf.StringValue message_id = 9 [ json_name = "message_id" ]; + } + // AdditionalBlockprintBlockClassificationData was removed — blockprint is deprecated. message AttestationDataSnapshot { @@ -1783,6 +1885,22 @@ message ClientMeta { // AdditionalEthV2BeaconBlockAccessListData contains additional data on // block access list entries derived from beacon blocks. AdditionalEthV2BeaconBlockAccessListData eth_v2_beacon_block_access_list = 95 [ json_name = "BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST" ]; + + // EIP-7732 ePBS: Sentry SSE additional data + AdditionalEthV1EventsExecutionPayloadData eth_v1_events_execution_payload = 96 [ json_name = "BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD" ]; + AdditionalEthV1EventsPayloadAttestationData eth_v1_events_payload_attestation = 97 [ json_name = "BEACON_API_ETH_V1_EVENTS_PAYLOAD_ATTESTATION" ]; + AdditionalEthV1EventsExecutionPayloadBidData eth_v1_events_execution_payload_bid = 98 [ json_name = "BEACON_API_ETH_V1_EVENTS_EXECUTION_PAYLOAD_BID" ]; + AdditionalEthV1EventsProposerPreferencesData eth_v1_events_proposer_preferences = 99 [ json_name = "BEACON_API_ETH_V1_EVENTS_PROPOSER_PREFERENCES" ]; + + // EIP-7732 ePBS: Cannon additional data + AdditionalEthV2BeaconBlockPayloadAttestationData eth_v2_beacon_block_payload_attestation = 100 [ json_name = "BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION" ]; + AdditionalEthV2BeaconBlockExecutionPayloadBidData eth_v2_beacon_block_execution_payload_bid = 101 [ json_name = "BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID" ]; + + // EIP-7732 ePBS: LibP2P gossip additional data + AdditionalLibP2PTraceGossipSubExecutionPayloadEnvelopeData libp2p_trace_gossipsub_execution_payload_envelope = 102 [ json_name = "LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_ENVELOPE" ]; + AdditionalLibP2PTraceGossipSubExecutionPayloadBidData libp2p_trace_gossipsub_execution_payload_bid = 103 [ json_name = "LIBP2P_TRACE_GOSSIPSUB_EXECUTION_PAYLOAD_BID" ]; + AdditionalLibP2PTraceGossipSubPayloadAttestationMessageData libp2p_trace_gossipsub_payload_attestation_message = 104 [ json_name = "LIBP2P_TRACE_GOSSIPSUB_PAYLOAD_ATTESTATION_MESSAGE" ]; + AdditionalLibP2PTraceGossipSubProposerPreferencesData libp2p_trace_gossipsub_proposer_preferences = 105 [ json_name = "LIBP2P_TRACE_GOSSIPSUB_PROPOSER_PREFERENCES" ]; } // ModuleName contains the name of the module that sent the event. diff --git a/pkg/server/persistence/cannon/location.go b/pkg/server/persistence/cannon/location.go index 18fe60dd6..f0a3fe52b 100644 --- a/pkg/server/persistence/cannon/location.go +++ b/pkg/server/persistence/cannon/location.go @@ -213,6 +213,28 @@ func (l *Location) Marshal(msg *xatu.CannonLocation) error { return fmt.Errorf("%w: %s", ErrFailedToMarshal, err) } + l.Value = string(b) + case xatu.CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION: + l.Type = "BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION" + + data := msg.GetEthV2BeaconBlockPayloadAttestation() + + b, err := protojson.Marshal(data) + if err != nil { + return fmt.Errorf("%w: %s", ErrFailedToMarshal, err) + } + + l.Value = string(b) + case xatu.CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID: + l.Type = "BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID" + + data := msg.GetEthV2BeaconBlockExecutionPayloadBid() + + b, err := protojson.Marshal(data) + if err != nil { + return fmt.Errorf("%w: %s", ErrFailedToMarshal, err) + } + l.Value = string(b) default: return fmt.Errorf("unknown type: %s", msg.Type) @@ -438,6 +460,32 @@ func (l *Location) Unmarshal() (*xatu.CannonLocation, error) { msg.Data = &xatu.CannonLocation_EthV2BeaconBlockAccessList{ EthV2BeaconBlockAccessList: data, } + case "BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION": + msg.Type = xatu.CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION + + data := &xatu.CannonLocationEthV2BeaconBlockPayloadAttestation{} + + err := protojson.Unmarshal([]byte(l.Value), data) + if err != nil { + return nil, fmt.Errorf("%w: %s", ErrFailedToUnmarshal, err) + } + + msg.Data = &xatu.CannonLocation_EthV2BeaconBlockPayloadAttestation{ + EthV2BeaconBlockPayloadAttestation: data, + } + case "BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID": + msg.Type = xatu.CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID + + data := &xatu.CannonLocationEthV2BeaconBlockExecutionPayloadBid{} + + err := protojson.Unmarshal([]byte(l.Value), data) + if err != nil { + return nil, fmt.Errorf("%w: %s", ErrFailedToUnmarshal, err) + } + + msg.Data = &xatu.CannonLocation_EthV2BeaconBlockExecutionPayloadBid{ + EthV2BeaconBlockExecutionPayloadBid: data, + } default: return nil, fmt.Errorf("unknown type: %s", l.Type) } From 12d9c0da2d64c289d689c8880bc44c52258a4beb Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Thu, 26 Mar 2026 14:21:39 +1000 Subject: [PATCH 22/23] feat: ebps wiring wip --- .../backfilling_checkpoint_iterator.go | 18 +++ ...n_api_eth_v1_events_data_column_sidecar.go | 5 + ...con_api_eth_v1_events_execution_payload.go | 41 ++++-- ...api_eth_v1_events_execution_payload_bid.go | 41 ++++-- ...th_v1_events_execution_payload_bid_test.go | 4 +- ...pi_eth_v1_events_execution_payload_test.go | 4 +- ...n_api_eth_v1_events_payload_attestation.go | 41 ++++-- ..._eth_v1_events_payload_attestation_test.go | 4 +- ..._api_eth_v1_events_proposer_preferences.go | 41 ++++-- ...eth_v1_events_proposer_preferences_test.go | 4 +- ...ical_beacon_block_execution_payload_bid.go | 25 ++-- ...beacon_block_execution_payload_bid_test.go | 4 +- ...onical_beacon_block_payload_attestation.go | 27 ++-- ...l_beacon_block_payload_attestation_test.go | 4 +- .../libp2p_gossipsub_data_column_sidecar.go | 5 + .../libp2p_gossipsub_execution_payload_bid.go | 117 ++++++++++++++---- ...2p_gossipsub_execution_payload_bid_test.go | 4 +- ...2p_gossipsub_execution_payload_envelope.go | 117 ++++++++++++++---- ...ssipsub_execution_payload_envelope_test.go | 4 +- ...p_gossipsub_payload_attestation_message.go | 117 ++++++++++++++---- ...sipsub_payload_attestation_message_test.go | 4 +- .../libp2p_gossipsub_proposer_preferences.go | 117 ++++++++++++++---- ...p2p_gossipsub_proposer_preferences_test.go | 4 +- 23 files changed, 595 insertions(+), 157 deletions(-) diff --git a/pkg/cannon/iterator/backfilling_checkpoint_iterator.go b/pkg/cannon/iterator/backfilling_checkpoint_iterator.go index 7bfb51f6b..ec55fe1d0 100644 --- a/pkg/cannon/iterator/backfilling_checkpoint_iterator.go +++ b/pkg/cannon/iterator/backfilling_checkpoint_iterator.go @@ -431,6 +431,11 @@ func (c *BackfillingCheckpoint) GetMarker(location *xatu.CannonLocation) (*xatu. marker = location.GetEthV2BeaconBlockSyncAggregate().GetBackfillingCheckpointMarker() case xatu.CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_ACCESS_LIST: marker = location.GetEthV2BeaconBlockAccessList().GetBackfillingCheckpointMarker() + // TODO(epbs): Wire up cannon derivers once go-eth2-client adds ePBS support. + case xatu.CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION: + marker = location.GetEthV2BeaconBlockPayloadAttestation().GetBackfillingCheckpointMarker() + case xatu.CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID: + marker = location.GetEthV2BeaconBlockExecutionPayloadBid().GetBackfillingCheckpointMarker() default: return nil, errors.Errorf("unknown cannon type %s", location.Type) } @@ -572,6 +577,19 @@ func (c *BackfillingCheckpoint) createLocationFromEpochNumber(finalized, backfil BackfillingCheckpointMarker: marker, }, } + // TODO(epbs): Wire up cannon derivers once go-eth2-client adds ePBS support. + case xatu.CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_PAYLOAD_ATTESTATION: + location.Data = &xatu.CannonLocation_EthV2BeaconBlockPayloadAttestation{ + EthV2BeaconBlockPayloadAttestation: &xatu.CannonLocationEthV2BeaconBlockPayloadAttestation{ + BackfillingCheckpointMarker: marker, + }, + } + case xatu.CannonType_BEACON_API_ETH_V2_BEACON_BLOCK_EXECUTION_PAYLOAD_BID: + location.Data = &xatu.CannonLocation_EthV2BeaconBlockExecutionPayloadBid{ + EthV2BeaconBlockExecutionPayloadBid: &xatu.CannonLocationEthV2BeaconBlockExecutionPayloadBid{ + BackfillingCheckpointMarker: marker, + }, + } default: return location, errors.Errorf("unknown cannon type %s", location.Type) } diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_data_column_sidecar.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_data_column_sidecar.go index 3fd7cf009..e6459c0c0 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_data_column_sidecar.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_data_column_sidecar.go @@ -4,6 +4,7 @@ import ( "fmt" "time" + "github.com/ClickHouse/ch-go/proto" "github.com/ethpandaops/xatu/pkg/consumoor/route" "github.com/ethpandaops/xatu/pkg/proto/xatu" ) @@ -104,6 +105,10 @@ func (b *beaconApiEthV1EventsDataColumnSidecarBatch) appendPayload(event *xatu.D } else { b.KzgCommitmentsCount.Append(0) } + + // TODO(epbs): populate with real sidecar slot/block root once available. + b.SidecarSlot.Append(proto.Nullable[uint32]{}) + b.SidecarBeaconBlockRoot.Append(proto.Nullable[[]byte]{}) } func (b *beaconApiEthV1EventsDataColumnSidecarBatch) appendAdditionalData( diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload.go index fa4fb1e5b..cde84b374 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload.go @@ -81,14 +81,39 @@ func (b *beaconApiEthV1EventsExecutionPayloadBatch) appendPayload(event *xatu.De } } -// TODO: Define AdditionalEthV1EventsExecutionPayloadData proto message to extract -// slot/epoch/propagation from event.GetMeta().GetClient(). For now, zero-fill these fields. func (b *beaconApiEthV1EventsExecutionPayloadBatch) appendAdditionalData( - _ *xatu.DecoratedEvent, + event *xatu.DecoratedEvent, ) { - b.Slot.Append(0) - b.SlotStartDateTime.Append(time.Time{}) - b.PropagationSlotStartDiff.Append(0) - b.Epoch.Append(0) - b.EpochStartDateTime.Append(time.Time{}) + if event.GetMeta() == nil || event.GetMeta().GetClient() == nil { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + + return + } + + client := event.GetMeta().GetClient() + additionalV2 := client.GetEthV1EventsExecutionPayload() + additional := extractBeaconSlotEpochPropagation(additionalV2) + + if additionalV2 != nil { + if slot := additionalV2.GetSlot(); slot != nil { + if num := slot.GetNumber(); num != nil { + b.Slot.Append(uint32(num.GetValue())) //nolint:gosec // slot fits uint32 + } else { + b.Slot.Append(0) + } + } else { + b.Slot.Append(0) + } + } else { + b.Slot.Append(0) + } + + b.SlotStartDateTime.Append(time.Unix(additional.SlotStartDateTime, 0)) + b.PropagationSlotStartDiff.Append(uint32(additional.PropagationSlotStartDiff)) //nolint:gosec // propagation diff fits uint32 + b.Epoch.Append(uint32(additional.Epoch)) //nolint:gosec // epoch fits uint32 + b.EpochStartDateTime.Append(time.Unix(additional.EpochStartDateTime, 0)) } diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid.go index 027b17e26..290c0ae95 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid.go @@ -97,14 +97,39 @@ func (b *beaconApiEthV1EventsExecutionPayloadBidBatch) appendPayload(event *xatu b.BlobKzgCommitmentCount.Append(uint32(len(bid.GetBlobKzgCommitments()))) } -// TODO: Define AdditionalEthV1EventsExecutionPayloadBidData proto message to extract -// slot/epoch/propagation from event.GetMeta().GetClient(). For now, zero-fill these fields. func (b *beaconApiEthV1EventsExecutionPayloadBidBatch) appendAdditionalData( - _ *xatu.DecoratedEvent, + event *xatu.DecoratedEvent, ) { - b.Slot.Append(0) - b.SlotStartDateTime.Append(time.Time{}) - b.PropagationSlotStartDiff.Append(0) - b.Epoch.Append(0) - b.EpochStartDateTime.Append(time.Time{}) + if event.GetMeta() == nil || event.GetMeta().GetClient() == nil { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + + return + } + + client := event.GetMeta().GetClient() + additionalV2 := client.GetEthV1EventsExecutionPayloadBid() + additional := extractBeaconSlotEpochPropagation(additionalV2) + + if additionalV2 != nil { + if slot := additionalV2.GetSlot(); slot != nil { + if num := slot.GetNumber(); num != nil { + b.Slot.Append(uint32(num.GetValue())) //nolint:gosec // slot fits uint32 + } else { + b.Slot.Append(0) + } + } else { + b.Slot.Append(0) + } + } else { + b.Slot.Append(0) + } + + b.SlotStartDateTime.Append(time.Unix(additional.SlotStartDateTime, 0)) + b.PropagationSlotStartDiff.Append(uint32(additional.PropagationSlotStartDiff)) //nolint:gosec // propagation diff fits uint32 + b.Epoch.Append(uint32(additional.Epoch)) //nolint:gosec // epoch fits uint32 + b.EpochStartDateTime.Append(time.Unix(additional.EpochStartDateTime, 0)) } diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid_test.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid_test.go index 9f2696f87..43e649f95 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid_test.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_bid_test.go @@ -19,9 +19,9 @@ func TestSnapshot_beacon_api_eth_v1_events_execution_payload_bid(t *testing.T) { Id: "snapshot-1", }, Meta: testfixture.BaseMeta(), - // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + // TODO(epbs): Add event-specific Data field and MetaWithAdditional for richer assertions. }, 1, map[string]any{ "meta_client_name": "test-client", - // TODO: Add payload-specific column assertions. + // TODO(epbs): Add payload-specific column assertions. }) } diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_test.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_test.go index d14f2bbd9..4a2161e47 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_test.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_execution_payload_test.go @@ -19,9 +19,9 @@ func TestSnapshot_beacon_api_eth_v1_events_execution_payload(t *testing.T) { Id: "snapshot-1", }, Meta: testfixture.BaseMeta(), - // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + // TODO(epbs): Add event-specific Data field and MetaWithAdditional for richer assertions. }, 1, map[string]any{ "meta_client_name": "test-client", - // TODO: Add payload-specific column assertions. + // TODO(epbs): Add payload-specific column assertions. }) } diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation.go index 51e639b37..522b13d45 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation.go @@ -81,14 +81,39 @@ func (b *beaconApiEthV1EventsPayloadAttestationBatch) appendPayload(event *xatu. } } -// TODO: Define AdditionalEthV1EventsPayloadAttestationData proto message to extract -// slot/epoch/propagation from event.GetMeta().GetClient(). For now, zero-fill these fields. func (b *beaconApiEthV1EventsPayloadAttestationBatch) appendAdditionalData( - _ *xatu.DecoratedEvent, + event *xatu.DecoratedEvent, ) { - b.Slot.Append(0) - b.SlotStartDateTime.Append(time.Time{}) - b.PropagationSlotStartDiff.Append(0) - b.Epoch.Append(0) - b.EpochStartDateTime.Append(time.Time{}) + if event.GetMeta() == nil || event.GetMeta().GetClient() == nil { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + + return + } + + client := event.GetMeta().GetClient() + additionalV2 := client.GetEthV1EventsPayloadAttestation() + additional := extractBeaconSlotEpochPropagation(additionalV2) + + if additionalV2 != nil { + if slot := additionalV2.GetSlot(); slot != nil { + if num := slot.GetNumber(); num != nil { + b.Slot.Append(uint32(num.GetValue())) //nolint:gosec // slot fits uint32 + } else { + b.Slot.Append(0) + } + } else { + b.Slot.Append(0) + } + } else { + b.Slot.Append(0) + } + + b.SlotStartDateTime.Append(time.Unix(additional.SlotStartDateTime, 0)) + b.PropagationSlotStartDiff.Append(uint32(additional.PropagationSlotStartDiff)) //nolint:gosec // propagation diff fits uint32 + b.Epoch.Append(uint32(additional.Epoch)) //nolint:gosec // epoch fits uint32 + b.EpochStartDateTime.Append(time.Unix(additional.EpochStartDateTime, 0)) } diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation_test.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation_test.go index 0a5db1022..42fa48694 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation_test.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_payload_attestation_test.go @@ -19,9 +19,9 @@ func TestSnapshot_beacon_api_eth_v1_events_payload_attestation(t *testing.T) { Id: "snapshot-1", }, Meta: testfixture.BaseMeta(), - // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + // TODO(epbs): Add event-specific Data field and MetaWithAdditional for richer assertions. }, 1, map[string]any{ "meta_client_name": "test-client", - // TODO: Add payload-specific column assertions. + // TODO(epbs): Add payload-specific column assertions. }) } diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences.go index 760019af8..a2f518506 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences.go @@ -79,14 +79,39 @@ func (b *beaconApiEthV1EventsProposerPreferencesBatch) appendPayload(event *xatu } } -// TODO: Define AdditionalEthV1EventsProposerPreferencesData proto message to extract -// slot/epoch/propagation from event.GetMeta().GetClient(). For now, zero-fill these fields. func (b *beaconApiEthV1EventsProposerPreferencesBatch) appendAdditionalData( - _ *xatu.DecoratedEvent, + event *xatu.DecoratedEvent, ) { - b.Slot.Append(0) - b.SlotStartDateTime.Append(time.Time{}) - b.PropagationSlotStartDiff.Append(0) - b.Epoch.Append(0) - b.EpochStartDateTime.Append(time.Time{}) + if event.GetMeta() == nil || event.GetMeta().GetClient() == nil { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + + return + } + + client := event.GetMeta().GetClient() + additionalV2 := client.GetEthV1EventsProposerPreferences() + additional := extractBeaconSlotEpochPropagation(additionalV2) + + if additionalV2 != nil { + if slot := additionalV2.GetSlot(); slot != nil { + if num := slot.GetNumber(); num != nil { + b.Slot.Append(uint32(num.GetValue())) //nolint:gosec // slot fits uint32 + } else { + b.Slot.Append(0) + } + } else { + b.Slot.Append(0) + } + } else { + b.Slot.Append(0) + } + + b.SlotStartDateTime.Append(time.Unix(additional.SlotStartDateTime, 0)) + b.PropagationSlotStartDiff.Append(uint32(additional.PropagationSlotStartDiff)) //nolint:gosec // propagation diff fits uint32 + b.Epoch.Append(uint32(additional.Epoch)) //nolint:gosec // epoch fits uint32 + b.EpochStartDateTime.Append(time.Unix(additional.EpochStartDateTime, 0)) } diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences_test.go b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences_test.go index fcc467d7a..9444c84a8 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences_test.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v1_events_proposer_preferences_test.go @@ -19,9 +19,9 @@ func TestSnapshot_beacon_api_eth_v1_events_proposer_preferences(t *testing.T) { Id: "snapshot-1", }, Meta: testfixture.BaseMeta(), - // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + // TODO(epbs): Add event-specific Data field and MetaWithAdditional for richer assertions. }, 1, map[string]any{ "meta_client_name": "test-client", - // TODO: Add payload-specific column assertions. + // TODO(epbs): Add payload-specific column assertions. }) } diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid.go b/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid.go index 6113075fc..29a481fa4 100644 --- a/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid.go +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid.go @@ -93,16 +93,21 @@ func (b *canonicalBeaconBlockExecutionPayloadBidBatch) appendPayload(event *xatu b.BlobKzgCommitmentCount.Append(uint32(len(bid.GetBlobKzgCommitments()))) } -// TODO: Define AdditionalEthV2BeaconBlockExecutionPayloadBidData proto message to extract -// block identifier (slot/epoch/block_root/block_version) from event.GetMeta().GetClient(). -// For now, zero-fill these fields. func (b *canonicalBeaconBlockExecutionPayloadBidBatch) appendAdditionalData( - _ *xatu.DecoratedEvent, + event *xatu.DecoratedEvent, ) { - b.Slot.Append(0) - b.SlotStartDateTime.Append(time.Time{}) - b.Epoch.Append(0) - b.EpochStartDateTime.Append(time.Time{}) - b.BlockRoot.Append(nil) - b.BlockVersion.Append("") + additional := event.GetMeta().GetClient().GetEthV2BeaconBlockExecutionPayloadBid() + if additional == nil { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + b.BlockRoot.Append(nil) + b.BlockVersion.Append("") + + return + } + + appendBlockIdentifier(additional.GetBlock(), + &b.Slot, &b.SlotStartDateTime, &b.Epoch, &b.EpochStartDateTime, &b.BlockVersion, &b.BlockRoot) } diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid_test.go b/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid_test.go index c71573412..9b042a181 100644 --- a/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid_test.go +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_execution_payload_bid_test.go @@ -19,9 +19,9 @@ func TestSnapshot_canonical_beacon_block_execution_payload_bid(t *testing.T) { Id: "snapshot-1", }, Meta: testfixture.BaseMeta(), - // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + // TODO(epbs): Add event-specific Data field and MetaWithAdditional for richer assertions. }, 1, map[string]any{ "meta_client_name": "test-client", - // TODO: Add payload-specific column assertions. + // TODO(epbs): Add payload-specific column assertions. }) } diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation.go b/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation.go index ea21b2ad4..f325f22bf 100644 --- a/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation.go +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation.go @@ -69,23 +69,28 @@ func (b *canonicalBeaconBlockPayloadAttestationBatch) appendPayload(event *xatu. b.AggregationBits.Append(attestation.GetAggregationBits()) - // TODO: AttestingValidatorCount and Position are not available on the PayloadAttestation + // TODO(epbs): AttestingValidatorCount and Position are not available on the PayloadAttestation // proto type. These require Additional*Data proto definitions to be populated by cannon. // For now, zero-fill these fields. b.AttestingValidatorCount.Append(0) b.Position.Append(0) } -// TODO: Define AdditionalEthV2BeaconBlockPayloadAttestationData proto message to extract -// block identifier (slot/epoch/block_root/block_version) from event.GetMeta().GetClient(). -// For now, zero-fill these fields. func (b *canonicalBeaconBlockPayloadAttestationBatch) appendAdditionalData( - _ *xatu.DecoratedEvent, + event *xatu.DecoratedEvent, ) { - b.Slot.Append(0) - b.SlotStartDateTime.Append(time.Time{}) - b.Epoch.Append(0) - b.EpochStartDateTime.Append(time.Time{}) - b.BlockRoot.Append(nil) - b.BlockVersion.Append("") + additional := event.GetMeta().GetClient().GetEthV2BeaconBlockPayloadAttestation() + if additional == nil { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + b.BlockRoot.Append(nil) + b.BlockVersion.Append("") + + return + } + + appendBlockIdentifier(additional.GetBlock(), + &b.Slot, &b.SlotStartDateTime, &b.Epoch, &b.EpochStartDateTime, &b.BlockVersion, &b.BlockRoot) } diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation_test.go b/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation_test.go index 7dd860251..1920de332 100644 --- a/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation_test.go +++ b/pkg/consumoor/route/canonical/canonical_beacon_block_payload_attestation_test.go @@ -19,9 +19,9 @@ func TestSnapshot_canonical_beacon_block_payload_attestation(t *testing.T) { Id: "snapshot-1", }, Meta: testfixture.BaseMeta(), - // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + // TODO(epbs): Add event-specific Data field and MetaWithAdditional for richer assertions. }, 1, map[string]any{ "meta_client_name": "test-client", - // TODO: Add payload-specific column assertions. + // TODO(epbs): Add payload-specific column assertions. }) } diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_data_column_sidecar.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_data_column_sidecar.go index 228eb8d14..f4003f935 100644 --- a/pkg/consumoor/route/libp2p/libp2p_gossipsub_data_column_sidecar.go +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_data_column_sidecar.go @@ -4,6 +4,7 @@ import ( "fmt" "time" + "github.com/ClickHouse/ch-go/proto" "github.com/ethpandaops/xatu/pkg/consumoor/route" "github.com/ethpandaops/xatu/pkg/proto/xatu" ) @@ -134,6 +135,10 @@ func (b *libp2pGossipsubDataColumnSidecarBatch) appendPayload(event *xatu.Decora } else { b.KzgCommitmentsCount.Append(0) } + + // TODO(epbs): populate with real sidecar slot/block root once available. + b.SidecarSlot.Append(proto.Nullable[uint32]{}) + b.SidecarBeaconBlockRoot.Append(proto.Nullable[[]byte]{}) } func (b *libp2pGossipsubDataColumnSidecarBatch) appendClientAdditionalData( diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid.go index 321f0c2c7..715e77fae 100644 --- a/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid.go +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid.go @@ -101,27 +101,102 @@ func (b *libp2pGossipsubExecutionPayloadBidBatch) appendPayload(event *xatu.Deco } } -// TODO: Define AdditionalLibp2pTraceGossipsubExecutionPayloadBidData proto message -// to extract slot/epoch/wallclock/propagation/peer/message/topic fields from -// event.GetMeta().GetClient(). For now, zero-fill these fields. func (b *libp2pGossipsubExecutionPayloadBidBatch) appendClientAdditionalData( - _ *xatu.DecoratedEvent, + event *xatu.DecoratedEvent, ) { - b.Slot.Append(0) - b.SlotStartDateTime.Append(time.Time{}) - b.Epoch.Append(0) - b.EpochStartDateTime.Append(time.Time{}) - b.WallclockSlot.Append(0) - b.WallclockSlotStartDateTime.Append(time.Time{}) - b.WallclockEpoch.Append(0) - b.WallclockEpochStartDateTime.Append(time.Time{}) - b.PropagationSlotStartDiff.Append(0) - b.Version.Append(4294967295) - b.MessageID.Append("") - b.MessageSize.Append(0) - b.TopicLayer.Append("") - b.TopicForkDigestValue.Append("") - b.TopicName.Append("") - b.TopicEncoding.Append("") - b.PeerIDUniqueKey.Append(0) + if event == nil || event.GetMeta() == nil || event.GetMeta().GetClient() == nil { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + b.WallclockSlot.Append(0) + b.WallclockSlotStartDateTime.Append(time.Time{}) + b.WallclockEpoch.Append(0) + b.WallclockEpochStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Version.Append(4294967295) + b.MessageID.Append("") + b.MessageSize.Append(0) + b.TopicLayer.Append("") + b.TopicForkDigestValue.Append("") + b.TopicName.Append("") + b.TopicEncoding.Append("") + b.PeerIDUniqueKey.Append(0) + + return + } + + additional := event.GetMeta().GetClient().GetLibp2PTraceGossipsubExecutionPayloadBid() + if additional == nil { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + b.WallclockSlot.Append(0) + b.WallclockSlotStartDateTime.Append(time.Time{}) + b.WallclockEpoch.Append(0) + b.WallclockEpochStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Version.Append(4294967295) + b.MessageID.Append("") + b.MessageSize.Append(0) + b.TopicLayer.Append("") + b.TopicForkDigestValue.Append("") + b.TopicName.Append("") + b.TopicEncoding.Append("") + b.PeerIDUniqueKey.Append(0) + + return + } + + // Extract slot/epoch/wallclock/propagation fields. + var propagationSlotStartDiff uint32 + + setGossipsubSlotEpochFields(additional, func(f gossipsubSlotEpochResult) { + b.Slot.Append(f.Slot) + b.SlotStartDateTime.Append(time.Unix(f.SlotStartDateTime, 0)) + b.Epoch.Append(f.Epoch) + b.EpochStartDateTime.Append(time.Unix(f.EpochStartDateTime, 0)) + b.WallclockSlot.Append(f.WallclockSlot) + b.WallclockSlotStartDateTime.Append(time.Unix(f.WallclockSlotStartDateTime, 0)) + b.WallclockEpoch.Append(f.WallclockEpoch) + b.WallclockEpochStartDateTime.Append(time.Unix(f.WallclockEpochStartDateTime, 0)) + b.PropagationSlotStartDiff.Append(f.PropagationSlotStartDiff) + propagationSlotStartDiff = f.PropagationSlotStartDiff + }) + + // Compute version for ReplacingMergeTree dedup. + b.Version.Append(4294967295 - propagationSlotStartDiff) + + // Extract message fields. + b.MessageID.Append(wrappedStringValue(additional.GetMessageId())) + + if msgSize := additional.GetMessageSize(); msgSize != nil { + b.MessageSize.Append(msgSize.GetValue()) + } else { + b.MessageSize.Append(0) + } + + // Parse topic fields. + if topic := wrappedStringValue(additional.GetTopic()); topic != "" { + parsed := parseTopicFields(topic) + b.TopicLayer.Append(parsed.Layer) + b.TopicForkDigestValue.Append(parsed.ForkDigestValue) + b.TopicName.Append(parsed.Name) + b.TopicEncoding.Append(parsed.Encoding) + } else { + b.TopicLayer.Append("") + b.TopicForkDigestValue.Append("") + b.TopicName.Append("") + b.TopicEncoding.Append("") + } + + // Extract peer ID from metadata. + peerID := "" + if traceMeta := additional.GetMetadata(); traceMeta != nil && traceMeta.GetPeerId() != nil { + peerID = traceMeta.GetPeerId().GetValue() + } + + networkName := event.GetMeta().GetClient().GetEthereum().GetNetwork().GetName() + b.PeerIDUniqueKey.Append(computePeerIDUniqueKey(peerID, networkName)) } diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid_test.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid_test.go index b40c9605e..f3a12a3d5 100644 --- a/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid_test.go +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_bid_test.go @@ -19,9 +19,9 @@ func TestSnapshot_libp2p_gossipsub_execution_payload_bid(t *testing.T) { Id: "snapshot-1", }, Meta: testfixture.BaseMeta(), - // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + // TODO(epbs): Add event-specific Data field and MetaWithAdditional for richer assertions. }, 1, map[string]any{ "meta_client_name": "test-client", - // TODO: Add payload-specific column assertions. + // TODO(epbs): Add payload-specific column assertions. }) } diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope.go index e830a5965..867c89c92 100644 --- a/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope.go +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope.go @@ -80,27 +80,102 @@ func (b *libp2pGossipsubExecutionPayloadEnvelopeBatch) appendPayload( b.BlockHash.Append([]byte(wrappedStringValue(payload.GetBlockHash()))) } -// TODO: Define AdditionalLibp2pTraceGossipsubExecutionPayloadEnvelopeData proto message -// to extract slot/epoch/wallclock/propagation/peer/message/topic fields from -// event.GetMeta().GetClient(). For now, zero-fill these fields. func (b *libp2pGossipsubExecutionPayloadEnvelopeBatch) appendClientAdditionalData( - _ *xatu.DecoratedEvent, + event *xatu.DecoratedEvent, ) { - b.Slot.Append(0) - b.SlotStartDateTime.Append(time.Time{}) - b.Epoch.Append(0) - b.EpochStartDateTime.Append(time.Time{}) - b.WallclockSlot.Append(0) - b.WallclockSlotStartDateTime.Append(time.Time{}) - b.WallclockEpoch.Append(0) - b.WallclockEpochStartDateTime.Append(time.Time{}) - b.PropagationSlotStartDiff.Append(0) - b.Version.Append(4294967295) - b.MessageID.Append("") - b.MessageSize.Append(0) - b.TopicLayer.Append("") - b.TopicForkDigestValue.Append("") - b.TopicName.Append("") - b.TopicEncoding.Append("") - b.PeerIDUniqueKey.Append(0) + if event == nil || event.GetMeta() == nil || event.GetMeta().GetClient() == nil { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + b.WallclockSlot.Append(0) + b.WallclockSlotStartDateTime.Append(time.Time{}) + b.WallclockEpoch.Append(0) + b.WallclockEpochStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Version.Append(4294967295) + b.MessageID.Append("") + b.MessageSize.Append(0) + b.TopicLayer.Append("") + b.TopicForkDigestValue.Append("") + b.TopicName.Append("") + b.TopicEncoding.Append("") + b.PeerIDUniqueKey.Append(0) + + return + } + + additional := event.GetMeta().GetClient().GetLibp2PTraceGossipsubExecutionPayloadEnvelope() + if additional == nil { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + b.WallclockSlot.Append(0) + b.WallclockSlotStartDateTime.Append(time.Time{}) + b.WallclockEpoch.Append(0) + b.WallclockEpochStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Version.Append(4294967295) + b.MessageID.Append("") + b.MessageSize.Append(0) + b.TopicLayer.Append("") + b.TopicForkDigestValue.Append("") + b.TopicName.Append("") + b.TopicEncoding.Append("") + b.PeerIDUniqueKey.Append(0) + + return + } + + // Extract slot/epoch/wallclock/propagation fields. + var propagationSlotStartDiff uint32 + + setGossipsubSlotEpochFields(additional, func(f gossipsubSlotEpochResult) { + b.Slot.Append(f.Slot) + b.SlotStartDateTime.Append(time.Unix(f.SlotStartDateTime, 0)) + b.Epoch.Append(f.Epoch) + b.EpochStartDateTime.Append(time.Unix(f.EpochStartDateTime, 0)) + b.WallclockSlot.Append(f.WallclockSlot) + b.WallclockSlotStartDateTime.Append(time.Unix(f.WallclockSlotStartDateTime, 0)) + b.WallclockEpoch.Append(f.WallclockEpoch) + b.WallclockEpochStartDateTime.Append(time.Unix(f.WallclockEpochStartDateTime, 0)) + b.PropagationSlotStartDiff.Append(f.PropagationSlotStartDiff) + propagationSlotStartDiff = f.PropagationSlotStartDiff + }) + + // Compute version for ReplacingMergeTree dedup. + b.Version.Append(4294967295 - propagationSlotStartDiff) + + // Extract message fields. + b.MessageID.Append(wrappedStringValue(additional.GetMessageId())) + + if msgSize := additional.GetMessageSize(); msgSize != nil { + b.MessageSize.Append(msgSize.GetValue()) + } else { + b.MessageSize.Append(0) + } + + // Parse topic fields. + if topic := wrappedStringValue(additional.GetTopic()); topic != "" { + parsed := parseTopicFields(topic) + b.TopicLayer.Append(parsed.Layer) + b.TopicForkDigestValue.Append(parsed.ForkDigestValue) + b.TopicName.Append(parsed.Name) + b.TopicEncoding.Append(parsed.Encoding) + } else { + b.TopicLayer.Append("") + b.TopicForkDigestValue.Append("") + b.TopicName.Append("") + b.TopicEncoding.Append("") + } + + // Extract peer ID from metadata. + peerID := "" + if traceMeta := additional.GetMetadata(); traceMeta != nil && traceMeta.GetPeerId() != nil { + peerID = traceMeta.GetPeerId().GetValue() + } + + networkName := event.GetMeta().GetClient().GetEthereum().GetNetwork().GetName() + b.PeerIDUniqueKey.Append(computePeerIDUniqueKey(peerID, networkName)) } diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope_test.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope_test.go index e21fee106..27fb6a1bd 100644 --- a/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope_test.go +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_execution_payload_envelope_test.go @@ -19,9 +19,9 @@ func TestSnapshot_libp2p_gossipsub_execution_payload_envelope(t *testing.T) { Id: "snapshot-1", }, Meta: testfixture.BaseMeta(), - // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + // TODO(epbs): Add event-specific Data field and MetaWithAdditional for richer assertions. }, 1, map[string]any{ "meta_client_name": "test-client", - // TODO: Add payload-specific column assertions. + // TODO(epbs): Add payload-specific column assertions. }) } diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message.go index cc9d11622..6a1a5df35 100644 --- a/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message.go +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message.go @@ -91,27 +91,102 @@ func (b *libp2pGossipsubPayloadAttestationMessageBatch) appendPayload( } } -// TODO: Define AdditionalLibp2pTraceGossipsubPayloadAttestationMessageData proto message -// to extract slot/epoch/wallclock/propagation/peer/message/topic fields from -// event.GetMeta().GetClient(). For now, zero-fill these fields. func (b *libp2pGossipsubPayloadAttestationMessageBatch) appendClientAdditionalData( - _ *xatu.DecoratedEvent, + event *xatu.DecoratedEvent, ) { - b.Slot.Append(0) - b.SlotStartDateTime.Append(time.Time{}) - b.Epoch.Append(0) - b.EpochStartDateTime.Append(time.Time{}) - b.WallclockSlot.Append(0) - b.WallclockSlotStartDateTime.Append(time.Time{}) - b.WallclockEpoch.Append(0) - b.WallclockEpochStartDateTime.Append(time.Time{}) - b.PropagationSlotStartDiff.Append(0) - b.Version.Append(4294967295) - b.MessageID.Append("") - b.MessageSize.Append(0) - b.TopicLayer.Append("") - b.TopicForkDigestValue.Append("") - b.TopicName.Append("") - b.TopicEncoding.Append("") - b.PeerIDUniqueKey.Append(0) + if event == nil || event.GetMeta() == nil || event.GetMeta().GetClient() == nil { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + b.WallclockSlot.Append(0) + b.WallclockSlotStartDateTime.Append(time.Time{}) + b.WallclockEpoch.Append(0) + b.WallclockEpochStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Version.Append(4294967295) + b.MessageID.Append("") + b.MessageSize.Append(0) + b.TopicLayer.Append("") + b.TopicForkDigestValue.Append("") + b.TopicName.Append("") + b.TopicEncoding.Append("") + b.PeerIDUniqueKey.Append(0) + + return + } + + additional := event.GetMeta().GetClient().GetLibp2PTraceGossipsubPayloadAttestationMessage() + if additional == nil { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + b.WallclockSlot.Append(0) + b.WallclockSlotStartDateTime.Append(time.Time{}) + b.WallclockEpoch.Append(0) + b.WallclockEpochStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Version.Append(4294967295) + b.MessageID.Append("") + b.MessageSize.Append(0) + b.TopicLayer.Append("") + b.TopicForkDigestValue.Append("") + b.TopicName.Append("") + b.TopicEncoding.Append("") + b.PeerIDUniqueKey.Append(0) + + return + } + + // Extract slot/epoch/wallclock/propagation fields. + var propagationSlotStartDiff uint32 + + setGossipsubSlotEpochFields(additional, func(f gossipsubSlotEpochResult) { + b.Slot.Append(f.Slot) + b.SlotStartDateTime.Append(time.Unix(f.SlotStartDateTime, 0)) + b.Epoch.Append(f.Epoch) + b.EpochStartDateTime.Append(time.Unix(f.EpochStartDateTime, 0)) + b.WallclockSlot.Append(f.WallclockSlot) + b.WallclockSlotStartDateTime.Append(time.Unix(f.WallclockSlotStartDateTime, 0)) + b.WallclockEpoch.Append(f.WallclockEpoch) + b.WallclockEpochStartDateTime.Append(time.Unix(f.WallclockEpochStartDateTime, 0)) + b.PropagationSlotStartDiff.Append(f.PropagationSlotStartDiff) + propagationSlotStartDiff = f.PropagationSlotStartDiff + }) + + // Compute version for ReplacingMergeTree dedup. + b.Version.Append(4294967295 - propagationSlotStartDiff) + + // Extract message fields. + b.MessageID.Append(wrappedStringValue(additional.GetMessageId())) + + if msgSize := additional.GetMessageSize(); msgSize != nil { + b.MessageSize.Append(msgSize.GetValue()) + } else { + b.MessageSize.Append(0) + } + + // Parse topic fields. + if topic := wrappedStringValue(additional.GetTopic()); topic != "" { + parsed := parseTopicFields(topic) + b.TopicLayer.Append(parsed.Layer) + b.TopicForkDigestValue.Append(parsed.ForkDigestValue) + b.TopicName.Append(parsed.Name) + b.TopicEncoding.Append(parsed.Encoding) + } else { + b.TopicLayer.Append("") + b.TopicForkDigestValue.Append("") + b.TopicName.Append("") + b.TopicEncoding.Append("") + } + + // Extract peer ID from metadata. + peerID := "" + if traceMeta := additional.GetMetadata(); traceMeta != nil && traceMeta.GetPeerId() != nil { + peerID = traceMeta.GetPeerId().GetValue() + } + + networkName := event.GetMeta().GetClient().GetEthereum().GetNetwork().GetName() + b.PeerIDUniqueKey.Append(computePeerIDUniqueKey(peerID, networkName)) } diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message_test.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message_test.go index 57e961d94..e754ead14 100644 --- a/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message_test.go +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_payload_attestation_message_test.go @@ -19,9 +19,9 @@ func TestSnapshot_libp2p_gossipsub_payload_attestation_message(t *testing.T) { Id: "snapshot-1", }, Meta: testfixture.BaseMeta(), - // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + // TODO(epbs): Add event-specific Data field and MetaWithAdditional for richer assertions. }, 1, map[string]any{ "meta_client_name": "test-client", - // TODO: Add payload-specific column assertions. + // TODO(epbs): Add payload-specific column assertions. }) } diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences.go index 3342d9be4..7ac0ef771 100644 --- a/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences.go +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences.go @@ -81,27 +81,102 @@ func (b *libp2pGossipsubProposerPreferencesBatch) appendPayload(event *xatu.Deco } } -// TODO: Define AdditionalLibp2pTraceGossipsubProposerPreferencesData proto message -// to extract slot/epoch/wallclock/propagation/peer/message/topic fields from -// event.GetMeta().GetClient(). For now, zero-fill these fields. func (b *libp2pGossipsubProposerPreferencesBatch) appendClientAdditionalData( - _ *xatu.DecoratedEvent, + event *xatu.DecoratedEvent, ) { - b.Slot.Append(0) - b.SlotStartDateTime.Append(time.Time{}) - b.Epoch.Append(0) - b.EpochStartDateTime.Append(time.Time{}) - b.WallclockSlot.Append(0) - b.WallclockSlotStartDateTime.Append(time.Time{}) - b.WallclockEpoch.Append(0) - b.WallclockEpochStartDateTime.Append(time.Time{}) - b.PropagationSlotStartDiff.Append(0) - b.Version.Append(4294967295) - b.MessageID.Append("") - b.MessageSize.Append(0) - b.TopicLayer.Append("") - b.TopicForkDigestValue.Append("") - b.TopicName.Append("") - b.TopicEncoding.Append("") - b.PeerIDUniqueKey.Append(0) + if event == nil || event.GetMeta() == nil || event.GetMeta().GetClient() == nil { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + b.WallclockSlot.Append(0) + b.WallclockSlotStartDateTime.Append(time.Time{}) + b.WallclockEpoch.Append(0) + b.WallclockEpochStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Version.Append(4294967295) + b.MessageID.Append("") + b.MessageSize.Append(0) + b.TopicLayer.Append("") + b.TopicForkDigestValue.Append("") + b.TopicName.Append("") + b.TopicEncoding.Append("") + b.PeerIDUniqueKey.Append(0) + + return + } + + additional := event.GetMeta().GetClient().GetLibp2PTraceGossipsubProposerPreferences() + if additional == nil { + b.Slot.Append(0) + b.SlotStartDateTime.Append(time.Time{}) + b.Epoch.Append(0) + b.EpochStartDateTime.Append(time.Time{}) + b.WallclockSlot.Append(0) + b.WallclockSlotStartDateTime.Append(time.Time{}) + b.WallclockEpoch.Append(0) + b.WallclockEpochStartDateTime.Append(time.Time{}) + b.PropagationSlotStartDiff.Append(0) + b.Version.Append(4294967295) + b.MessageID.Append("") + b.MessageSize.Append(0) + b.TopicLayer.Append("") + b.TopicForkDigestValue.Append("") + b.TopicName.Append("") + b.TopicEncoding.Append("") + b.PeerIDUniqueKey.Append(0) + + return + } + + // Extract slot/epoch/wallclock/propagation fields. + var propagationSlotStartDiff uint32 + + setGossipsubSlotEpochFields(additional, func(f gossipsubSlotEpochResult) { + b.Slot.Append(f.Slot) + b.SlotStartDateTime.Append(time.Unix(f.SlotStartDateTime, 0)) + b.Epoch.Append(f.Epoch) + b.EpochStartDateTime.Append(time.Unix(f.EpochStartDateTime, 0)) + b.WallclockSlot.Append(f.WallclockSlot) + b.WallclockSlotStartDateTime.Append(time.Unix(f.WallclockSlotStartDateTime, 0)) + b.WallclockEpoch.Append(f.WallclockEpoch) + b.WallclockEpochStartDateTime.Append(time.Unix(f.WallclockEpochStartDateTime, 0)) + b.PropagationSlotStartDiff.Append(f.PropagationSlotStartDiff) + propagationSlotStartDiff = f.PropagationSlotStartDiff + }) + + // Compute version for ReplacingMergeTree dedup. + b.Version.Append(4294967295 - propagationSlotStartDiff) + + // Extract message fields. + b.MessageID.Append(wrappedStringValue(additional.GetMessageId())) + + if msgSize := additional.GetMessageSize(); msgSize != nil { + b.MessageSize.Append(msgSize.GetValue()) + } else { + b.MessageSize.Append(0) + } + + // Parse topic fields. + if topic := wrappedStringValue(additional.GetTopic()); topic != "" { + parsed := parseTopicFields(topic) + b.TopicLayer.Append(parsed.Layer) + b.TopicForkDigestValue.Append(parsed.ForkDigestValue) + b.TopicName.Append(parsed.Name) + b.TopicEncoding.Append(parsed.Encoding) + } else { + b.TopicLayer.Append("") + b.TopicForkDigestValue.Append("") + b.TopicName.Append("") + b.TopicEncoding.Append("") + } + + // Extract peer ID from metadata. + peerID := "" + if traceMeta := additional.GetMetadata(); traceMeta != nil && traceMeta.GetPeerId() != nil { + peerID = traceMeta.GetPeerId().GetValue() + } + + networkName := event.GetMeta().GetClient().GetEthereum().GetNetwork().GetName() + b.PeerIDUniqueKey.Append(computePeerIDUniqueKey(peerID, networkName)) } diff --git a/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences_test.go b/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences_test.go index 671fe0949..fd7805792 100644 --- a/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences_test.go +++ b/pkg/consumoor/route/libp2p/libp2p_gossipsub_proposer_preferences_test.go @@ -19,9 +19,9 @@ func TestSnapshot_libp2p_gossipsub_proposer_preferences(t *testing.T) { Id: "snapshot-1", }, Meta: testfixture.BaseMeta(), - // TODO: Add event-specific Data field and MetaWithAdditional for richer assertions. + // TODO(epbs): Add event-specific Data field and MetaWithAdditional for richer assertions. }, 1, map[string]any{ "meta_client_name": "test-client", - // TODO: Add payload-specific column assertions. + // TODO(epbs): Add payload-specific column assertions. }) } From 360c56849e51173293c76a669fab782ea7f3e18c Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Thu, 26 Mar 2026 14:32:46 +1000 Subject: [PATCH 23/23] feat: ebps wiring wip --- .../beacon/beacon_api_eth_v2_beacon_block.go | 19 +++++++++++++++++++ .../route/canonical/canonical_beacon_block.go | 19 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go b/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go index c996da79d..524f0fd2f 100644 --- a/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go +++ b/pkg/consumoor/route/beacon/beacon_api_eth_v2_beacon_block.go @@ -311,6 +311,17 @@ func (b *beaconApiEthV2BeaconBlockBatch) appendNoExecutionPayload() { b.ExecutionPayloadGasUsed.Append(proto.Nullable[uint64]{}) b.ExecutionPayloadStateRoot.Append(nil) b.ExecutionPayloadParentHash.Append(nil) + + b.appendNullEpbsColumns() +} + +// TODO(epbs): Gloas blocks should populate these from SignedExecutionPayloadBid +// once go-eth2-client lands. For now all blocks get NULL. +func (b *beaconApiEthV2BeaconBlockBatch) appendNullEpbsColumns() { + b.BuilderIndex.Append(proto.Nullable[uint64]{}) + b.BidValue.Append(proto.Nullable[uint64]{}) + b.ExecutionPayment.Append(proto.Nullable[uint64]{}) + b.PayloadPresent.Append(proto.Nullable[bool]{}) } func (b *beaconApiEthV2BeaconBlockBatch) appendExecutionPayloadV2( @@ -356,6 +367,8 @@ func (b *beaconApiEthV2BeaconBlockBatch) appendExecutionPayloadV2( b.ExecutionPayloadExcessBlobGas.Append(proto.Nullable[uint64]{}) b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) + b.appendNullEpbsColumns() + return nil } @@ -402,6 +415,8 @@ func (b *beaconApiEthV2BeaconBlockBatch) appendExecutionPayloadCapellaV2( b.ExecutionPayloadExcessBlobGas.Append(proto.Nullable[uint64]{}) b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) + b.appendNullEpbsColumns() + return nil } @@ -458,6 +473,8 @@ func (b *beaconApiEthV2BeaconBlockBatch) appendExecutionPayloadDeneb( b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) + b.appendNullEpbsColumns() + return nil } @@ -514,6 +531,8 @@ func (b *beaconApiEthV2BeaconBlockBatch) appendExecutionPayloadElectra( b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) + b.appendNullEpbsColumns() + return nil } diff --git a/pkg/consumoor/route/canonical/canonical_beacon_block.go b/pkg/consumoor/route/canonical/canonical_beacon_block.go index 472a7b7fd..693f7c415 100644 --- a/pkg/consumoor/route/canonical/canonical_beacon_block.go +++ b/pkg/consumoor/route/canonical/canonical_beacon_block.go @@ -303,6 +303,17 @@ func (b *canonicalBeaconBlockBatch) appendNullExecutionPayload() { b.ExecutionPayloadGasUsed.Append(proto.Nullable[uint64]{}) b.ExecutionPayloadStateRoot.Append(proto.Nullable[[]byte]{}) b.ExecutionPayloadParentHash.Append(proto.Nullable[[]byte]{}) + + b.appendNullEpbsColumns() +} + +// TODO(epbs): Gloas blocks should populate these from SignedExecutionPayloadBid +// once go-eth2-client lands. For now all blocks get NULL. +func (b *canonicalBeaconBlockBatch) appendNullEpbsColumns() { + b.BuilderIndex.Append(proto.Nullable[uint64]{}) + b.BidValue.Append(proto.Nullable[uint64]{}) + b.ExecutionPayment.Append(proto.Nullable[uint64]{}) + b.PayloadPresent.Append(proto.Nullable[bool]{}) } //nolint:gosec // G115 @@ -347,6 +358,8 @@ func (b *canonicalBeaconBlockBatch) appendExecutionPayloadV2(payload *ethv1.Exec b.ExecutionPayloadExcessBlobGas.Append(proto.Nullable[uint64]{}) b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) + b.appendNullEpbsColumns() + return nil } @@ -392,6 +405,8 @@ func (b *canonicalBeaconBlockBatch) appendExecutionPayloadCapellaV2(payload *eth b.ExecutionPayloadExcessBlobGas.Append(proto.Nullable[uint64]{}) b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) + b.appendNullEpbsColumns() + return nil } @@ -447,6 +462,8 @@ func (b *canonicalBeaconBlockBatch) appendExecutionPayloadDeneb(payload *ethv1.E b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) + b.appendNullEpbsColumns() + return nil } @@ -502,6 +519,8 @@ func (b *canonicalBeaconBlockBatch) appendExecutionPayloadElectra(payload *ethv1 b.ExecutionPayloadSlotNumber.Append(proto.Nullable[uint64]{}) + b.appendNullEpbsColumns() + return nil }