// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: rec_room/persistence/holotar_data.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace RecRoom.Protobuf {

  /// <summary>Holder for reflection information generated from rec_room/persistence/holotar_data.proto</summary>
  public static partial class HolotarDataReflection {

    #region Descriptor
    /// <summary>File descriptor for rec_room/persistence/holotar_data.proto</summary>
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static HolotarDataReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "CidyZWNfcm9vbS9wZXJzaXN0ZW5jZS9ob2xvdGFyX2RhdGEucHJvdG8SCHJl",
            "Y19yb29tGhVjb3JlL2NvbG9yX2RhdGEucHJvdG8aF2NvcmUvdmVjdG9yM19k",
            "YXRhLnByb3RvGiByZWNfcm9vbS9hdWRpb19zdHJlYW1fZGF0YS5wcm90bxo8",
            "cmVjX3Jvb20vcGVyc2lzdGVuY2UvZGVwcmVjYXRlZC9ERVBSRUNBVEVEX291",
            "dGZpdF9kYXRhLnByb3RvGiZyZWNfcm9vbS9wZXJzaXN0ZW5jZS9hdmF0YXJf",
            "ZGF0YS5wcm90byLlFgoPSG9sb3RhckJsb2JEYXRhEhIKCmNyZWF0b3JfaWQY",
            "ASABKAUSEAoIZHVyYXRpb24YAiABKAISOwoJcG9zZV9kYXRhGAMgASgLMigu",
            "cmVjX3Jvb20uSG9sb3RhckJsb2JEYXRhLlBsYXllclBvc2VEYXRhEjQKC291",
            "dGZpdF9kYXRhGAQgASgLMh8ucmVjX3Jvb20uREVQUkVDQVRFRF9PdXRmaXRE",
            "YXRhEi0KCmF1ZGlvX2RhdGEYBSABKAsyGS5yZWNfcm9vbS5BdWRpb1N0cmVh",
            "bURhdGESEwoLdm9pcF9maWx0ZXIYBiABKAUSMgoHdmVyc2lvbhgHIAEoDjIh",
            "LnJlY19yb29tLkhvbG90YXJCbG9iRGF0YS5WZXJzaW9uEjMKEXRlYW1fY29s",
            "b3Jfc3RhdGVzGAggAygLMhgucmVjX3Jvb20uQ29sb3JTdGF0ZURhdGESKQoL",
            "YXZhdGFyX2RhdGEYCSABKAsyFC5yZWNfcm9vbS5BdmF0YXJEYXRhEh8KF3dh",
            "c19wbGF5ZXJfdXNpbmdfc2NyZWVuGAogASgIGkwKDlBvc2VTdHJlYW1EYXRh",
            "EjoKBXBvc2VzGAEgAygLMisucmVjX3Jvb20uSG9sb3RhckJsb2JEYXRhLlBv",
            "c2VUcmFuc2Zvcm1EYXRhGpoCChJIYW5kUG9zZVN0cmVhbURhdGESSAoFcG9z",
            "ZXMYASADKAsyOS5yZWNfcm9vbS5Ib2xvdGFyQmxvYkRhdGEuSGFuZFBvc2VT",
            "dHJlYW1EYXRhLkhhbmRQb3NlRGF0YRq5AQoMSGFuZFBvc2VEYXRhEj4KCXRy",
            "YW5zZm9ybRgBIAEoCzIrLnJlY19yb29tLkhvbG90YXJCbG9iRGF0YS5Qb3Nl",
            "VHJhbnNmb3JtRGF0YRIcChRpc19tZW51X2hhbmRfdmlzaWJsZRgCIAEoCBIY",
            "ChB0aHVtYnNfdXBfYWN0aXZlGAMgASgIEhgKEG9wZW5fY2xvc2VkX2F4aXMY",
            "BCABKAISFwoPaXNfaG9sZGluZ190b29sGAUgASgIGp4LChZBdmF0YXJTeXN0",
            "ZW1TdHJlYW1EYXRhEmoKGWF2YXRhcl9zeXN0ZW1fdXBkYXRlX2RhdGEYASAD",
            "KAsyRy5yZWNfcm9vbS5Ib2xvdGFyQmxvYkRhdGEuQXZhdGFyU3lzdGVtU3Ry",
            "ZWFtRGF0YS5BdmF0YXJTeXN0ZW1VcGRhdGVEYXRhEkkKFHRyYWNraW5nX3Nw",
            "YWNlX3Bvc2VzGAIgAygLMisucmVjX3Jvb20uSG9sb3RhckJsb2JEYXRhLlBv",
            "c2VUcmFuc2Zvcm1EYXRhEjoKH3Jvb3RfdG9fdHJhY2tpbmdfc3BhY2Vfcm90",
            "YXRpb24YAyABKAsyES5jb3JlLlZlY3RvcjNEYXRhGpAJChZBdmF0YXJTeXN0",
            "ZW1VcGRhdGVEYXRhEhAKCGlzX2xvY2FsGAIgASgIEhwKFGRlc2lyZWRfYXZh",
            "dGFyX3NjYWxlGAMgASgCEiQKCXBsYXllcl91cBgEIAEoCzIRLmNvcmUuVmVj",
            "dG9yM0RhdGESMAoVZm9yd2FyZF95YXdfcmVmZXJlbmNlGAUgASgLMhEuY29y",
            "ZS5WZWN0b3IzRGF0YRIxChZ0b3Jzb19mb3J3YXJkX292ZXJyaWRlGAYgASgL",
            "MhEuY29yZS5WZWN0b3IzRGF0YRIxChZwZWx2aXNfYW5jaG9yX3Bvc2l0aW9u",
            "GAcgASgLMhEuY29yZS5WZWN0b3IzRGF0YRIaChJpc19wbGF5ZXJfc3RlZXJp",
            "bmcYCCABKAgSGAoQaXNfcGxheWVyX3NlYXRlZBgJIAEoCBIYChBpc19wbGF5",
            "ZXJfZmx5aW5nGAogASgIEh8KF2lzX3BsYXllcl93YWxsX2NsaW1iaW5nGAsg",
            "ASgIEiwKEXdhbGxfY2xpbWJfbm9ybWFsGAwgASgLMhEuY29yZS5WZWN0b3Iz",
            "RGF0YRIeChZpc19wbGF5ZXJfd2FsbF9ydW5uaW5nGA0gASgIEjAKFXdhbGxf",
            "cnVuX3dhbGxfdGFuZ2VudBgOIAEoCzIRLmNvcmUuVmVjdG9yM0RhdGESHAoU",
            "aXNfcGxheWVyX2NsYW1iZXJpbmcYDyABKAgSLgoTY2xhbWJlcl93YWxsX25v",
            "cm1hbBgQIAEoCzIRLmNvcmUuVmVjdG9yM0RhdGESHgoWY2xhbWJlcl90aW1l",
            "X3JlbWFpbmluZxgRIAEoAhIzChhwbGF5ZXJfc3RlZXJpbmdfdmVsb2NpdHkY",
            "EiABKAsyES5jb3JlLlZlY3RvcjNEYXRhEhkKEWlzX3BsYXllcl9mYWxsaW5n",
            "GBMgASgIEiAKGGlzX3BsYXllcl9zdGFydGluZ19zbGlkZRgUIAEoCBIZChFp",
            "c19wbGF5ZXJfc2xpZGluZxgVIAEoCBIZChFpc19wbGF5ZXJfbGFuZGluZxgW",
            "IAEoCBIrCiNpc19wbGF5ZXJfc2VhdGVkX2luX3NpdHRpbmdfcG9zdHVyZRgX",
            "IAEoCBIoCiBpc19wbGF5ZXJfd2FsbF9ydW5fb25fcmlnaHRfc2lkZRgYIAEo",
            "CBIfChdpc19wbGF5ZXJfc3RhcnRpbmdfanVtcBgZIAEoCBIjChtpc19wbGF5",
            "ZXJfc3RhcnRpbmdfdGVsZXBvcnQYGiABKAgSHQoVaXNfcGxheWVyX3RlbGVw",
            "b3J0aW5nGBsgASgIEhsKE2lzX3BsYXllcl9jcm91Y2hpbmcYHCABKAgSFwoP",
            "aXNfcGxheWVyX3Byb25lGB0gASgIEicKDHByb25lX25vcm1hbBgeIAEoCzIR",
            "LmNvcmUuVmVjdG9yM0RhdGESHAoUcmlnaHRfaGFuZF9pa193ZWlnaHQYHyAB",
            "KAISGwoTbGVmdF9oYW5kX2lrX3dlaWdodBggIAEoAhIRCgl0aW1lc3RhbXAY",
            "ISABKAISGAoQZG9fZ3JvdW5kX29mZnNldBgiIAEoCBqIAwoOUGxheWVyUG9z",
            "ZURhdGESGgoSc2FtcGxlc19wZXJfc2Vjb25kGAEgASgFEjwKCmhlYWRfcG9z",
            "ZXMYAiABKAsyKC5yZWNfcm9vbS5Ib2xvdGFyQmxvYkRhdGEuUG9zZVN0cmVh",
            "bURhdGESPQoLdG9yc29fcG9zZXMYAyABKAsyKC5yZWNfcm9vbS5Ib2xvdGFy",
            "QmxvYkRhdGEuUG9zZVN0cmVhbURhdGESRQoPbGVmdF9oYW5kX3Bvc2VzGAQg",
            "ASgLMiwucmVjX3Jvb20uSG9sb3RhckJsb2JEYXRhLkhhbmRQb3NlU3RyZWFt",
            "RGF0YRJGChByaWdodF9oYW5kX3Bvc2VzGAUgASgLMiwucmVjX3Jvb20uSG9s",
            "b3RhckJsb2JEYXRhLkhhbmRQb3NlU3RyZWFtRGF0YRJOChRhdmF0YXJfc3lz",
            "dGVtX3VwZGF0ZRgGIAEoCzIwLnJlY19yb29tLkhvbG90YXJCbG9iRGF0YS5B",
            "dmF0YXJTeXN0ZW1TdHJlYW1EYXRhGnwKEVBvc2VUcmFuc2Zvcm1EYXRhEikK",
            "DmxvY2FsX3Bvc2l0aW9uGAEgASgLMhEuY29yZS5WZWN0b3IzRGF0YRIpCg5s",
            "b2NhbF9yb3RhdGlvbhgCIAEoCzIRLmNvcmUuVmVjdG9yM0RhdGESEQoJdGlt",
            "ZXN0YW1wGAMgASgCIqoBCgdWZXJzaW9uEgsKB0lOSVRJQUwQABIZChVTVFJJ",
            "UFBFRF9URUFNX09VVEZJVFMQARI3CjNBRERFRF9USU1FU1RBTVBTX1RFQU1f",
            "Q09MT1JTX0FORF9UT09MX0hPTERJTkdfU1RBVEUQAxIeChpBRERFRF9BVkFU",
            "QVJfU1lTVEVNX1NUUkVBTRAEEh4KGkFWQVRBUl9EQVRBX0lOX0xPQ0FMX1NQ",
            "QUNFEAUiQwoOQ29sb3JTdGF0ZURhdGESEQoJdGltZXN0YW1wGAEgASgCEh4K",
            "BWNvbG9yGAIgASgLMg8uY29yZS5Db2xvckRhdGEilQIKFkhvbG90YXJQZXJz",
            "aXN0ZW5jZURhdGESEQoJYmxvYl9uYW1lGAEgASgJEhEKCWJpbGxib2FyZBgC",
            "IAEoCBIUCgxoaWRlX2VmZmVjdHMYAyABKAgSFAoMYXVkaW9fdm9sdW1lGAQg",
            "ASgCEhIKCmlzX2xvb3BpbmcYBSABKAgSFQoNdXNlc18yRF9hdWRpbxgGIAEo",
            "CBIdChVwbGF5YmFja19wdXBwZXRfc2NhbGUYByABKAISJwofcGxheWJhY2tf",
            "cHVwcGV0X3ZlcnRpY2FsX29mZnNldBgIIAEoAhIfChdtaXJyb3JlZF93aGVu",
            "X3JlY29yZGluZxgJIAEoCBIVCg1hdWRpb19jaGFubmVsGAogASgFQhOqAhBS",
            "ZWNSb29tLlByb3RvYnVmYgZwcm90bzM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::RecRoom.Protobuf.Core.ColorDataReflection.Descriptor, global::RecRoom.Protobuf.Core.Vector3DataReflection.Descriptor, global::RecRoom.Protobuf.AudioStreamDataReflection.Descriptor, global::RecRoom.Protobuf.DEPRECATEDOutfitDataReflection.Descriptor, global::RecRoom.Protobuf.AvatarDataReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.HolotarBlobData), global::RecRoom.Protobuf.HolotarBlobData.Parser, new[]{ "CreatorId", "Duration", "PoseData", "OutfitData", "AudioData", "VoipFilter", "Version", "TeamColorStates", "AvatarData", "WasPlayerUsingScreen" }, null, new[]{ typeof(global::RecRoom.Protobuf.HolotarBlobData.Types.Version) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.HolotarBlobData.Types.PoseStreamData), global::RecRoom.Protobuf.HolotarBlobData.Types.PoseStreamData.Parser, new[]{ "Poses" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData), global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData.Parser, new[]{ "Poses" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData.Types.HandPoseData), global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData.Types.HandPoseData.Parser, new[]{ "Transform", "IsMenuHandVisible", "ThumbsUpActive", "OpenClosedAxis", "IsHoldingTool" }, null, null, null, null)}),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.HolotarBlobData.Types.AvatarSystemStreamData), global::RecRoom.Protobuf.HolotarBlobData.Types.AvatarSystemStreamData.Parser, new[]{ "AvatarSystemUpdateData", "TrackingSpacePoses", "RootToTrackingSpaceRotation" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.HolotarBlobData.Types.AvatarSystemStreamData.Types.AvatarSystemUpdateData), global::RecRoom.Protobuf.HolotarBlobData.Types.AvatarSystemStreamData.Types.AvatarSystemUpdateData.Parser, new[]{ "IsLocal", "DesiredAvatarScale", "PlayerUp", "ForwardYawReference", "TorsoForwardOverride", "PelvisAnchorPosition", "IsPlayerSteering", "IsPlayerSeated", "IsPlayerFlying", "IsPlayerWallClimbing", "WallClimbNormal", "IsPlayerWallRunning", "WallRunWallTangent", "IsPlayerClambering", "ClamberWallNormal", "ClamberTimeRemaining", "PlayerSteeringVelocity", "IsPlayerFalling", "IsPlayerStartingSlide", "IsPlayerSliding", "IsPlayerLanding", "IsPlayerSeatedInSittingPosture", "IsPlayerWallRunOnRightSide", "IsPlayerStartingJump", "IsPlayerStartingTeleport", "IsPlayerTeleporting", "IsPlayerCrouching", "IsPlayerProne", "ProneNormal", "RightHandIkWeight", "LeftHandIkWeight", "Timestamp", "DoGroundOffset" }, null, null, null, null)}),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.HolotarBlobData.Types.PlayerPoseData), global::RecRoom.Protobuf.HolotarBlobData.Types.PlayerPoseData.Parser, new[]{ "SamplesPerSecond", "HeadPoses", "TorsoPoses", "LeftHandPoses", "RightHandPoses", "AvatarSystemUpdate" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.HolotarBlobData.Types.PoseTransformData), global::RecRoom.Protobuf.HolotarBlobData.Types.PoseTransformData.Parser, new[]{ "LocalPosition", "LocalRotation", "Timestamp" }, null, null, null, null)}),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.ColorStateData), global::RecRoom.Protobuf.ColorStateData.Parser, new[]{ "Timestamp", "Color" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.HolotarPersistenceData), global::RecRoom.Protobuf.HolotarPersistenceData.Parser, new[]{ "BlobName", "Billboard", "HideEffects", "AudioVolume", "IsLooping", "Uses2DAudio", "PlaybackPuppetScale", "PlaybackPuppetVerticalOffset", "MirroredWhenRecording", "AudioChannel" }, null, null, null, null)
          }));
    }
    #endregion

  }
  #region Messages
  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class HolotarBlobData : pb::IMessage<HolotarBlobData>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<HolotarBlobData> _parser = new pb::MessageParser<HolotarBlobData>(() => new HolotarBlobData());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<HolotarBlobData> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::RecRoom.Protobuf.HolotarDataReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public HolotarBlobData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public HolotarBlobData(HolotarBlobData other) : this() {
      creatorId_ = other.creatorId_;
      duration_ = other.duration_;
      poseData_ = other.poseData_ != null ? other.poseData_.Clone() : null;
      outfitData_ = other.outfitData_ != null ? other.outfitData_.Clone() : null;
      audioData_ = other.audioData_ != null ? other.audioData_.Clone() : null;
      voipFilter_ = other.voipFilter_;
      version_ = other.version_;
      teamColorStates_ = other.teamColorStates_.Clone();
      avatarData_ = other.avatarData_ != null ? other.avatarData_.Clone() : null;
      wasPlayerUsingScreen_ = other.wasPlayerUsingScreen_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public HolotarBlobData Clone() {
      return new HolotarBlobData(this);
    }

    /// <summary>Field number for the "creator_id" field.</summary>
    public const int CreatorIdFieldNumber = 1;
    private int creatorId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CreatorId {
      get { return creatorId_; }
      set {
        creatorId_ = value;
      }
    }

    /// <summary>Field number for the "duration" field.</summary>
    public const int DurationFieldNumber = 2;
    private float duration_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float Duration {
      get { return duration_; }
      set {
        duration_ = value;
      }
    }

    /// <summary>Field number for the "pose_data" field.</summary>
    public const int PoseDataFieldNumber = 3;
    private global::RecRoom.Protobuf.HolotarBlobData.Types.PlayerPoseData poseData_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.HolotarBlobData.Types.PlayerPoseData PoseData {
      get { return poseData_; }
      set {
        poseData_ = value;
      }
    }

    /// <summary>Field number for the "outfit_data" field.</summary>
    public const int OutfitDataFieldNumber = 4;
    private global::RecRoom.Protobuf.DEPRECATED_OutfitData outfitData_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.DEPRECATED_OutfitData OutfitData {
      get { return outfitData_; }
      set {
        outfitData_ = value;
      }
    }

    /// <summary>Field number for the "audio_data" field.</summary>
    public const int AudioDataFieldNumber = 5;
    private global::RecRoom.Protobuf.AudioStreamData audioData_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.AudioStreamData AudioData {
      get { return audioData_; }
      set {
        audioData_ = value;
      }
    }

    /// <summary>Field number for the "voip_filter" field.</summary>
    public const int VoipFilterFieldNumber = 6;
    private int voipFilter_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int VoipFilter {
      get { return voipFilter_; }
      set {
        voipFilter_ = value;
      }
    }

    /// <summary>Field number for the "version" field.</summary>
    public const int VersionFieldNumber = 7;
    private global::RecRoom.Protobuf.HolotarBlobData.Types.Version version_ = global::RecRoom.Protobuf.HolotarBlobData.Types.Version.Initial;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.HolotarBlobData.Types.Version Version {
      get { return version_; }
      set {
        version_ = value;
      }
    }

    /// <summary>Field number for the "team_color_states" field.</summary>
    public const int TeamColorStatesFieldNumber = 8;
    private static readonly pb::FieldCodec<global::RecRoom.Protobuf.ColorStateData> _repeated_teamColorStates_codec
        = pb::FieldCodec.ForMessage(66, global::RecRoom.Protobuf.ColorStateData.Parser);
    private readonly pbc::RepeatedField<global::RecRoom.Protobuf.ColorStateData> teamColorStates_ = new pbc::RepeatedField<global::RecRoom.Protobuf.ColorStateData>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::RecRoom.Protobuf.ColorStateData> TeamColorStates {
      get { return teamColorStates_; }
    }

    /// <summary>Field number for the "avatar_data" field.</summary>
    public const int AvatarDataFieldNumber = 9;
    private global::RecRoom.Protobuf.AvatarData avatarData_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.AvatarData AvatarData {
      get { return avatarData_; }
      set {
        avatarData_ = value;
      }
    }

    /// <summary>Field number for the "was_player_using_screen" field.</summary>
    public const int WasPlayerUsingScreenFieldNumber = 10;
    private bool wasPlayerUsingScreen_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool WasPlayerUsingScreen {
      get { return wasPlayerUsingScreen_; }
      set {
        wasPlayerUsingScreen_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as HolotarBlobData);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(HolotarBlobData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (CreatorId != other.CreatorId) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Duration, other.Duration)) return false;
      if (!object.Equals(PoseData, other.PoseData)) return false;
      if (!object.Equals(OutfitData, other.OutfitData)) return false;
      if (!object.Equals(AudioData, other.AudioData)) return false;
      if (VoipFilter != other.VoipFilter) return false;
      if (Version != other.Version) return false;
      if(!teamColorStates_.Equals(other.teamColorStates_)) return false;
      if (!object.Equals(AvatarData, other.AvatarData)) return false;
      if (WasPlayerUsingScreen != other.WasPlayerUsingScreen) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (CreatorId != 0) hash ^= CreatorId.GetHashCode();
      if (Duration != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Duration);
      if (poseData_ != null) hash ^= PoseData.GetHashCode();
      if (outfitData_ != null) hash ^= OutfitData.GetHashCode();
      if (audioData_ != null) hash ^= AudioData.GetHashCode();
      if (VoipFilter != 0) hash ^= VoipFilter.GetHashCode();
      if (Version != global::RecRoom.Protobuf.HolotarBlobData.Types.Version.Initial) hash ^= Version.GetHashCode();
      hash ^= teamColorStates_.GetHashCode();
      if (avatarData_ != null) hash ^= AvatarData.GetHashCode();
      if (WasPlayerUsingScreen != false) hash ^= WasPlayerUsingScreen.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (CreatorId != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(CreatorId);
      }
      if (Duration != 0F) {
        output.WriteRawTag(21);
        output.WriteFloat(Duration);
      }
      if (poseData_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(PoseData);
      }
      if (outfitData_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(OutfitData);
      }
      if (audioData_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(AudioData);
      }
      if (VoipFilter != 0) {
        output.WriteRawTag(48);
        output.WriteInt32(VoipFilter);
      }
      if (Version != global::RecRoom.Protobuf.HolotarBlobData.Types.Version.Initial) {
        output.WriteRawTag(56);
        output.WriteEnum((int) Version);
      }
      teamColorStates_.WriteTo(output, _repeated_teamColorStates_codec);
      if (avatarData_ != null) {
        output.WriteRawTag(74);
        output.WriteMessage(AvatarData);
      }
      if (WasPlayerUsingScreen != false) {
        output.WriteRawTag(80);
        output.WriteBool(WasPlayerUsingScreen);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (CreatorId != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(CreatorId);
      }
      if (Duration != 0F) {
        output.WriteRawTag(21);
        output.WriteFloat(Duration);
      }
      if (poseData_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(PoseData);
      }
      if (outfitData_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(OutfitData);
      }
      if (audioData_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(AudioData);
      }
      if (VoipFilter != 0) {
        output.WriteRawTag(48);
        output.WriteInt32(VoipFilter);
      }
      if (Version != global::RecRoom.Protobuf.HolotarBlobData.Types.Version.Initial) {
        output.WriteRawTag(56);
        output.WriteEnum((int) Version);
      }
      teamColorStates_.WriteTo(ref output, _repeated_teamColorStates_codec);
      if (avatarData_ != null) {
        output.WriteRawTag(74);
        output.WriteMessage(AvatarData);
      }
      if (WasPlayerUsingScreen != false) {
        output.WriteRawTag(80);
        output.WriteBool(WasPlayerUsingScreen);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (CreatorId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(CreatorId);
      }
      if (Duration != 0F) {
        size += 1 + 4;
      }
      if (poseData_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(PoseData);
      }
      if (outfitData_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(OutfitData);
      }
      if (audioData_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(AudioData);
      }
      if (VoipFilter != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(VoipFilter);
      }
      if (Version != global::RecRoom.Protobuf.HolotarBlobData.Types.Version.Initial) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Version);
      }
      size += teamColorStates_.CalculateSize(_repeated_teamColorStates_codec);
      if (avatarData_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(AvatarData);
      }
      if (WasPlayerUsingScreen != false) {
        size += 1 + 1;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(HolotarBlobData other) {
      if (other == null) {
        return;
      }
      if (other.CreatorId != 0) {
        CreatorId = other.CreatorId;
      }
      if (other.Duration != 0F) {
        Duration = other.Duration;
      }
      if (other.poseData_ != null) {
        if (poseData_ == null) {
          PoseData = new global::RecRoom.Protobuf.HolotarBlobData.Types.PlayerPoseData();
        }
        PoseData.MergeFrom(other.PoseData);
      }
      if (other.outfitData_ != null) {
        if (outfitData_ == null) {
          OutfitData = new global::RecRoom.Protobuf.DEPRECATED_OutfitData();
        }
        OutfitData.MergeFrom(other.OutfitData);
      }
      if (other.audioData_ != null) {
        if (audioData_ == null) {
          AudioData = new global::RecRoom.Protobuf.AudioStreamData();
        }
        AudioData.MergeFrom(other.AudioData);
      }
      if (other.VoipFilter != 0) {
        VoipFilter = other.VoipFilter;
      }
      if (other.Version != global::RecRoom.Protobuf.HolotarBlobData.Types.Version.Initial) {
        Version = other.Version;
      }
      teamColorStates_.Add(other.teamColorStates_);
      if (other.avatarData_ != null) {
        if (avatarData_ == null) {
          AvatarData = new global::RecRoom.Protobuf.AvatarData();
        }
        AvatarData.MergeFrom(other.AvatarData);
      }
      if (other.WasPlayerUsingScreen != false) {
        WasPlayerUsingScreen = other.WasPlayerUsingScreen;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            CreatorId = input.ReadInt32();
            break;
          }
          case 21: {
            Duration = input.ReadFloat();
            break;
          }
          case 26: {
            if (poseData_ == null) {
              PoseData = new global::RecRoom.Protobuf.HolotarBlobData.Types.PlayerPoseData();
            }
            input.ReadMessage(PoseData);
            break;
          }
          case 34: {
            if (outfitData_ == null) {
              OutfitData = new global::RecRoom.Protobuf.DEPRECATED_OutfitData();
            }
            input.ReadMessage(OutfitData);
            break;
          }
          case 42: {
            if (audioData_ == null) {
              AudioData = new global::RecRoom.Protobuf.AudioStreamData();
            }
            input.ReadMessage(AudioData);
            break;
          }
          case 48: {
            VoipFilter = input.ReadInt32();
            break;
          }
          case 56: {
            Version = (global::RecRoom.Protobuf.HolotarBlobData.Types.Version) input.ReadEnum();
            break;
          }
          case 66: {
            teamColorStates_.AddEntriesFrom(input, _repeated_teamColorStates_codec);
            break;
          }
          case 74: {
            if (avatarData_ == null) {
              AvatarData = new global::RecRoom.Protobuf.AvatarData();
            }
            input.ReadMessage(AvatarData);
            break;
          }
          case 80: {
            WasPlayerUsingScreen = input.ReadBool();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            CreatorId = input.ReadInt32();
            break;
          }
          case 21: {
            Duration = input.ReadFloat();
            break;
          }
          case 26: {
            if (poseData_ == null) {
              PoseData = new global::RecRoom.Protobuf.HolotarBlobData.Types.PlayerPoseData();
            }
            input.ReadMessage(PoseData);
            break;
          }
          case 34: {
            if (outfitData_ == null) {
              OutfitData = new global::RecRoom.Protobuf.DEPRECATED_OutfitData();
            }
            input.ReadMessage(OutfitData);
            break;
          }
          case 42: {
            if (audioData_ == null) {
              AudioData = new global::RecRoom.Protobuf.AudioStreamData();
            }
            input.ReadMessage(AudioData);
            break;
          }
          case 48: {
            VoipFilter = input.ReadInt32();
            break;
          }
          case 56: {
            Version = (global::RecRoom.Protobuf.HolotarBlobData.Types.Version) input.ReadEnum();
            break;
          }
          case 66: {
            teamColorStates_.AddEntriesFrom(ref input, _repeated_teamColorStates_codec);
            break;
          }
          case 74: {
            if (avatarData_ == null) {
              AvatarData = new global::RecRoom.Protobuf.AvatarData();
            }
            input.ReadMessage(AvatarData);
            break;
          }
          case 80: {
            WasPlayerUsingScreen = input.ReadBool();
            break;
          }
        }
      }
    }
    #endif

    #region Nested types
    /// <summary>Container for nested types declared in the HolotarBlobData message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static partial class Types {
      public enum Version {
        [pbr::OriginalName("INITIAL")] Initial = 0,
        [pbr::OriginalName("STRIPPED_TEAM_OUTFITS")] StrippedTeamOutfits = 1,
        [pbr::OriginalName("ADDED_TIMESTAMPS_TEAM_COLORS_AND_TOOL_HOLDING_STATE")] AddedTimestampsTeamColorsAndToolHoldingState = 3,
        [pbr::OriginalName("ADDED_AVATAR_SYSTEM_STREAM")] AddedAvatarSystemStream = 4,
        [pbr::OriginalName("AVATAR_DATA_IN_LOCAL_SPACE")] AvatarDataInLocalSpace = 5,
      }

      [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
      public sealed partial class PoseStreamData : pb::IMessage<PoseStreamData>
      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          , pb::IBufferMessage
      #endif
      {
        private static readonly pb::MessageParser<PoseStreamData> _parser = new pb::MessageParser<PoseStreamData>(() => new PoseStreamData());
        private pb::UnknownFieldSet _unknownFields;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pb::MessageParser<PoseStreamData> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::RecRoom.Protobuf.HolotarBlobData.Descriptor.NestedTypes[0]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        pbr::MessageDescriptor pb::IMessage.Descriptor {
          get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public PoseStreamData() {
          OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public PoseStreamData(PoseStreamData other) : this() {
          poses_ = other.poses_.Clone();
          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public PoseStreamData Clone() {
          return new PoseStreamData(this);
        }

        /// <summary>Field number for the "poses" field.</summary>
        public const int PosesFieldNumber = 1;
        private static readonly pb::FieldCodec<global::RecRoom.Protobuf.HolotarBlobData.Types.PoseTransformData> _repeated_poses_codec
            = pb::FieldCodec.ForMessage(10, global::RecRoom.Protobuf.HolotarBlobData.Types.PoseTransformData.Parser);
        private readonly pbc::RepeatedField<global::RecRoom.Protobuf.HolotarBlobData.Types.PoseTransformData> poses_ = new pbc::RepeatedField<global::RecRoom.Protobuf.HolotarBlobData.Types.PoseTransformData>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public pbc::RepeatedField<global::RecRoom.Protobuf.HolotarBlobData.Types.PoseTransformData> Poses {
          get { return poses_; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override bool Equals(object other) {
          return Equals(other as PoseStreamData);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool Equals(PoseStreamData other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if(!poses_.Equals(other.poses_)) return false;
          return Equals(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override int GetHashCode() {
          int hash = 1;
          hash ^= poses_.GetHashCode();
          if (_unknownFields != null) {
            hash ^= _unknownFields.GetHashCode();
          }
          return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override string ToString() {
          return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void WriteTo(pb::CodedOutputStream output) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          output.WriteRawMessage(this);
        #else
          poses_.WriteTo(output, _repeated_poses_codec);
          if (_unknownFields != null) {
            _unknownFields.WriteTo(output);
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
          poses_.WriteTo(ref output, _repeated_poses_codec);
          if (_unknownFields != null) {
            _unknownFields.WriteTo(ref output);
          }
        }
        #endif

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public int CalculateSize() {
          int size = 0;
          size += poses_.CalculateSize(_repeated_poses_codec);
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(PoseStreamData other) {
          if (other == null) {
            return;
          }
          poses_.Add(other.poses_);
          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(pb::CodedInputStream input) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          input.ReadRawMessage(this);
        #else
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                break;
              case 10: {
                poses_.AddEntriesFrom(input, _repeated_poses_codec);
                break;
              }
            }
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                break;
              case 10: {
                poses_.AddEntriesFrom(ref input, _repeated_poses_codec);
                break;
              }
            }
          }
        }
        #endif

      }

      [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
      public sealed partial class HandPoseStreamData : pb::IMessage<HandPoseStreamData>
      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          , pb::IBufferMessage
      #endif
      {
        private static readonly pb::MessageParser<HandPoseStreamData> _parser = new pb::MessageParser<HandPoseStreamData>(() => new HandPoseStreamData());
        private pb::UnknownFieldSet _unknownFields;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pb::MessageParser<HandPoseStreamData> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::RecRoom.Protobuf.HolotarBlobData.Descriptor.NestedTypes[1]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        pbr::MessageDescriptor pb::IMessage.Descriptor {
          get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public HandPoseStreamData() {
          OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public HandPoseStreamData(HandPoseStreamData other) : this() {
          poses_ = other.poses_.Clone();
          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public HandPoseStreamData Clone() {
          return new HandPoseStreamData(this);
        }

        /// <summary>Field number for the "poses" field.</summary>
        public const int PosesFieldNumber = 1;
        private static readonly pb::FieldCodec<global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData.Types.HandPoseData> _repeated_poses_codec
            = pb::FieldCodec.ForMessage(10, global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData.Types.HandPoseData.Parser);
        private readonly pbc::RepeatedField<global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData.Types.HandPoseData> poses_ = new pbc::RepeatedField<global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData.Types.HandPoseData>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public pbc::RepeatedField<global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData.Types.HandPoseData> Poses {
          get { return poses_; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override bool Equals(object other) {
          return Equals(other as HandPoseStreamData);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool Equals(HandPoseStreamData other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if(!poses_.Equals(other.poses_)) return false;
          return Equals(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override int GetHashCode() {
          int hash = 1;
          hash ^= poses_.GetHashCode();
          if (_unknownFields != null) {
            hash ^= _unknownFields.GetHashCode();
          }
          return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override string ToString() {
          return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void WriteTo(pb::CodedOutputStream output) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          output.WriteRawMessage(this);
        #else
          poses_.WriteTo(output, _repeated_poses_codec);
          if (_unknownFields != null) {
            _unknownFields.WriteTo(output);
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
          poses_.WriteTo(ref output, _repeated_poses_codec);
          if (_unknownFields != null) {
            _unknownFields.WriteTo(ref output);
          }
        }
        #endif

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public int CalculateSize() {
          int size = 0;
          size += poses_.CalculateSize(_repeated_poses_codec);
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(HandPoseStreamData other) {
          if (other == null) {
            return;
          }
          poses_.Add(other.poses_);
          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(pb::CodedInputStream input) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          input.ReadRawMessage(this);
        #else
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                break;
              case 10: {
                poses_.AddEntriesFrom(input, _repeated_poses_codec);
                break;
              }
            }
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                break;
              case 10: {
                poses_.AddEntriesFrom(ref input, _repeated_poses_codec);
                break;
              }
            }
          }
        }
        #endif

        #region Nested types
        /// <summary>Container for nested types declared in the HandPoseStreamData message type.</summary>
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static partial class Types {
          [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
          public sealed partial class HandPoseData : pb::IMessage<HandPoseData>
          #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
              , pb::IBufferMessage
          #endif
          {
            private static readonly pb::MessageParser<HandPoseData> _parser = new pb::MessageParser<HandPoseData>(() => new HandPoseData());
            private pb::UnknownFieldSet _unknownFields;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public static pb::MessageParser<HandPoseData> Parser { get { return _parser; } }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public static pbr::MessageDescriptor Descriptor {
              get { return global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData.Descriptor.NestedTypes[0]; }
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            pbr::MessageDescriptor pb::IMessage.Descriptor {
              get { return Descriptor; }
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public HandPoseData() {
              OnConstruction();
            }

            partial void OnConstruction();

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public HandPoseData(HandPoseData other) : this() {
              transform_ = other.transform_ != null ? other.transform_.Clone() : null;
              isMenuHandVisible_ = other.isMenuHandVisible_;
              thumbsUpActive_ = other.thumbsUpActive_;
              openClosedAxis_ = other.openClosedAxis_;
              isHoldingTool_ = other.isHoldingTool_;
              _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public HandPoseData Clone() {
              return new HandPoseData(this);
            }

            /// <summary>Field number for the "transform" field.</summary>
            public const int TransformFieldNumber = 1;
            private global::RecRoom.Protobuf.HolotarBlobData.Types.PoseTransformData transform_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public global::RecRoom.Protobuf.HolotarBlobData.Types.PoseTransformData Transform {
              get { return transform_; }
              set {
                transform_ = value;
              }
            }

            /// <summary>Field number for the "is_menu_hand_visible" field.</summary>
            public const int IsMenuHandVisibleFieldNumber = 2;
            private bool isMenuHandVisible_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsMenuHandVisible {
              get { return isMenuHandVisible_; }
              set {
                isMenuHandVisible_ = value;
              }
            }

            /// <summary>Field number for the "thumbs_up_active" field.</summary>
            public const int ThumbsUpActiveFieldNumber = 3;
            private bool thumbsUpActive_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool ThumbsUpActive {
              get { return thumbsUpActive_; }
              set {
                thumbsUpActive_ = value;
              }
            }

            /// <summary>Field number for the "open_closed_axis" field.</summary>
            public const int OpenClosedAxisFieldNumber = 4;
            private float openClosedAxis_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public float OpenClosedAxis {
              get { return openClosedAxis_; }
              set {
                openClosedAxis_ = value;
              }
            }

            /// <summary>Field number for the "is_holding_tool" field.</summary>
            public const int IsHoldingToolFieldNumber = 5;
            private bool isHoldingTool_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsHoldingTool {
              get { return isHoldingTool_; }
              set {
                isHoldingTool_ = value;
              }
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public override bool Equals(object other) {
              return Equals(other as HandPoseData);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool Equals(HandPoseData other) {
              if (ReferenceEquals(other, null)) {
                return false;
              }
              if (ReferenceEquals(other, this)) {
                return true;
              }
              if (!object.Equals(Transform, other.Transform)) return false;
              if (IsMenuHandVisible != other.IsMenuHandVisible) return false;
              if (ThumbsUpActive != other.ThumbsUpActive) return false;
              if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(OpenClosedAxis, other.OpenClosedAxis)) return false;
              if (IsHoldingTool != other.IsHoldingTool) return false;
              return Equals(_unknownFields, other._unknownFields);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public override int GetHashCode() {
              int hash = 1;
              if (transform_ != null) hash ^= Transform.GetHashCode();
              if (IsMenuHandVisible != false) hash ^= IsMenuHandVisible.GetHashCode();
              if (ThumbsUpActive != false) hash ^= ThumbsUpActive.GetHashCode();
              if (OpenClosedAxis != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(OpenClosedAxis);
              if (IsHoldingTool != false) hash ^= IsHoldingTool.GetHashCode();
              if (_unknownFields != null) {
                hash ^= _unknownFields.GetHashCode();
              }
              return hash;
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public override string ToString() {
              return pb::JsonFormatter.ToDiagnosticString(this);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public void WriteTo(pb::CodedOutputStream output) {
            #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
              output.WriteRawMessage(this);
            #else
              if (transform_ != null) {
                output.WriteRawTag(10);
                output.WriteMessage(Transform);
              }
              if (IsMenuHandVisible != false) {
                output.WriteRawTag(16);
                output.WriteBool(IsMenuHandVisible);
              }
              if (ThumbsUpActive != false) {
                output.WriteRawTag(24);
                output.WriteBool(ThumbsUpActive);
              }
              if (OpenClosedAxis != 0F) {
                output.WriteRawTag(37);
                output.WriteFloat(OpenClosedAxis);
              }
              if (IsHoldingTool != false) {
                output.WriteRawTag(40);
                output.WriteBool(IsHoldingTool);
              }
              if (_unknownFields != null) {
                _unknownFields.WriteTo(output);
              }
            #endif
            }

            #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
              if (transform_ != null) {
                output.WriteRawTag(10);
                output.WriteMessage(Transform);
              }
              if (IsMenuHandVisible != false) {
                output.WriteRawTag(16);
                output.WriteBool(IsMenuHandVisible);
              }
              if (ThumbsUpActive != false) {
                output.WriteRawTag(24);
                output.WriteBool(ThumbsUpActive);
              }
              if (OpenClosedAxis != 0F) {
                output.WriteRawTag(37);
                output.WriteFloat(OpenClosedAxis);
              }
              if (IsHoldingTool != false) {
                output.WriteRawTag(40);
                output.WriteBool(IsHoldingTool);
              }
              if (_unknownFields != null) {
                _unknownFields.WriteTo(ref output);
              }
            }
            #endif

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public int CalculateSize() {
              int size = 0;
              if (transform_ != null) {
                size += 1 + pb::CodedOutputStream.ComputeMessageSize(Transform);
              }
              if (IsMenuHandVisible != false) {
                size += 1 + 1;
              }
              if (ThumbsUpActive != false) {
                size += 1 + 1;
              }
              if (OpenClosedAxis != 0F) {
                size += 1 + 4;
              }
              if (IsHoldingTool != false) {
                size += 1 + 1;
              }
              if (_unknownFields != null) {
                size += _unknownFields.CalculateSize();
              }
              return size;
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public void MergeFrom(HandPoseData other) {
              if (other == null) {
                return;
              }
              if (other.transform_ != null) {
                if (transform_ == null) {
                  Transform = new global::RecRoom.Protobuf.HolotarBlobData.Types.PoseTransformData();
                }
                Transform.MergeFrom(other.Transform);
              }
              if (other.IsMenuHandVisible != false) {
                IsMenuHandVisible = other.IsMenuHandVisible;
              }
              if (other.ThumbsUpActive != false) {
                ThumbsUpActive = other.ThumbsUpActive;
              }
              if (other.OpenClosedAxis != 0F) {
                OpenClosedAxis = other.OpenClosedAxis;
              }
              if (other.IsHoldingTool != false) {
                IsHoldingTool = other.IsHoldingTool;
              }
              _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public void MergeFrom(pb::CodedInputStream input) {
            #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
              input.ReadRawMessage(this);
            #else
              uint tag;
              while ((tag = input.ReadTag()) != 0) {
              if ((tag & 7) == 4) {
                // Abort on any end group tag.
                return;
              }
              switch(tag) {
                  default:
                    _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                    break;
                  case 10: {
                    if (transform_ == null) {
                      Transform = new global::RecRoom.Protobuf.HolotarBlobData.Types.PoseTransformData();
                    }
                    input.ReadMessage(Transform);
                    break;
                  }
                  case 16: {
                    IsMenuHandVisible = input.ReadBool();
                    break;
                  }
                  case 24: {
                    ThumbsUpActive = input.ReadBool();
                    break;
                  }
                  case 37: {
                    OpenClosedAxis = input.ReadFloat();
                    break;
                  }
                  case 40: {
                    IsHoldingTool = input.ReadBool();
                    break;
                  }
                }
              }
            #endif
            }

            #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
              uint tag;
              while ((tag = input.ReadTag()) != 0) {
              if ((tag & 7) == 4) {
                // Abort on any end group tag.
                return;
              }
              switch(tag) {
                  default:
                    _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                    break;
                  case 10: {
                    if (transform_ == null) {
                      Transform = new global::RecRoom.Protobuf.HolotarBlobData.Types.PoseTransformData();
                    }
                    input.ReadMessage(Transform);
                    break;
                  }
                  case 16: {
                    IsMenuHandVisible = input.ReadBool();
                    break;
                  }
                  case 24: {
                    ThumbsUpActive = input.ReadBool();
                    break;
                  }
                  case 37: {
                    OpenClosedAxis = input.ReadFloat();
                    break;
                  }
                  case 40: {
                    IsHoldingTool = input.ReadBool();
                    break;
                  }
                }
              }
            }
            #endif

          }

        }
        #endregion

      }

      [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
      public sealed partial class AvatarSystemStreamData : pb::IMessage<AvatarSystemStreamData>
      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          , pb::IBufferMessage
      #endif
      {
        private static readonly pb::MessageParser<AvatarSystemStreamData> _parser = new pb::MessageParser<AvatarSystemStreamData>(() => new AvatarSystemStreamData());
        private pb::UnknownFieldSet _unknownFields;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pb::MessageParser<AvatarSystemStreamData> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::RecRoom.Protobuf.HolotarBlobData.Descriptor.NestedTypes[2]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        pbr::MessageDescriptor pb::IMessage.Descriptor {
          get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public AvatarSystemStreamData() {
          OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public AvatarSystemStreamData(AvatarSystemStreamData other) : this() {
          avatarSystemUpdateData_ = other.avatarSystemUpdateData_.Clone();
          trackingSpacePoses_ = other.trackingSpacePoses_.Clone();
          rootToTrackingSpaceRotation_ = other.rootToTrackingSpaceRotation_ != null ? other.rootToTrackingSpaceRotation_.Clone() : null;
          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public AvatarSystemStreamData Clone() {
          return new AvatarSystemStreamData(this);
        }

        /// <summary>Field number for the "avatar_system_update_data" field.</summary>
        public const int AvatarSystemUpdateDataFieldNumber = 1;
        private static readonly pb::FieldCodec<global::RecRoom.Protobuf.HolotarBlobData.Types.AvatarSystemStreamData.Types.AvatarSystemUpdateData> _repeated_avatarSystemUpdateData_codec
            = pb::FieldCodec.ForMessage(10, global::RecRoom.Protobuf.HolotarBlobData.Types.AvatarSystemStreamData.Types.AvatarSystemUpdateData.Parser);
        private readonly pbc::RepeatedField<global::RecRoom.Protobuf.HolotarBlobData.Types.AvatarSystemStreamData.Types.AvatarSystemUpdateData> avatarSystemUpdateData_ = new pbc::RepeatedField<global::RecRoom.Protobuf.HolotarBlobData.Types.AvatarSystemStreamData.Types.AvatarSystemUpdateData>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public pbc::RepeatedField<global::RecRoom.Protobuf.HolotarBlobData.Types.AvatarSystemStreamData.Types.AvatarSystemUpdateData> AvatarSystemUpdateData {
          get { return avatarSystemUpdateData_; }
        }

        /// <summary>Field number for the "tracking_space_poses" field.</summary>
        public const int TrackingSpacePosesFieldNumber = 2;
        private static readonly pb::FieldCodec<global::RecRoom.Protobuf.HolotarBlobData.Types.PoseTransformData> _repeated_trackingSpacePoses_codec
            = pb::FieldCodec.ForMessage(18, global::RecRoom.Protobuf.HolotarBlobData.Types.PoseTransformData.Parser);
        private readonly pbc::RepeatedField<global::RecRoom.Protobuf.HolotarBlobData.Types.PoseTransformData> trackingSpacePoses_ = new pbc::RepeatedField<global::RecRoom.Protobuf.HolotarBlobData.Types.PoseTransformData>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public pbc::RepeatedField<global::RecRoom.Protobuf.HolotarBlobData.Types.PoseTransformData> TrackingSpacePoses {
          get { return trackingSpacePoses_; }
        }

        /// <summary>Field number for the "root_to_tracking_space_rotation" field.</summary>
        public const int RootToTrackingSpaceRotationFieldNumber = 3;
        private global::RecRoom.Protobuf.Core.Vector3Data rootToTrackingSpaceRotation_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::RecRoom.Protobuf.Core.Vector3Data RootToTrackingSpaceRotation {
          get { return rootToTrackingSpaceRotation_; }
          set {
            rootToTrackingSpaceRotation_ = value;
          }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override bool Equals(object other) {
          return Equals(other as AvatarSystemStreamData);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool Equals(AvatarSystemStreamData other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if(!avatarSystemUpdateData_.Equals(other.avatarSystemUpdateData_)) return false;
          if(!trackingSpacePoses_.Equals(other.trackingSpacePoses_)) return false;
          if (!object.Equals(RootToTrackingSpaceRotation, other.RootToTrackingSpaceRotation)) return false;
          return Equals(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override int GetHashCode() {
          int hash = 1;
          hash ^= avatarSystemUpdateData_.GetHashCode();
          hash ^= trackingSpacePoses_.GetHashCode();
          if (rootToTrackingSpaceRotation_ != null) hash ^= RootToTrackingSpaceRotation.GetHashCode();
          if (_unknownFields != null) {
            hash ^= _unknownFields.GetHashCode();
          }
          return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override string ToString() {
          return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void WriteTo(pb::CodedOutputStream output) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          output.WriteRawMessage(this);
        #else
          avatarSystemUpdateData_.WriteTo(output, _repeated_avatarSystemUpdateData_codec);
          trackingSpacePoses_.WriteTo(output, _repeated_trackingSpacePoses_codec);
          if (rootToTrackingSpaceRotation_ != null) {
            output.WriteRawTag(26);
            output.WriteMessage(RootToTrackingSpaceRotation);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(output);
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
          avatarSystemUpdateData_.WriteTo(ref output, _repeated_avatarSystemUpdateData_codec);
          trackingSpacePoses_.WriteTo(ref output, _repeated_trackingSpacePoses_codec);
          if (rootToTrackingSpaceRotation_ != null) {
            output.WriteRawTag(26);
            output.WriteMessage(RootToTrackingSpaceRotation);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(ref output);
          }
        }
        #endif

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public int CalculateSize() {
          int size = 0;
          size += avatarSystemUpdateData_.CalculateSize(_repeated_avatarSystemUpdateData_codec);
          size += trackingSpacePoses_.CalculateSize(_repeated_trackingSpacePoses_codec);
          if (rootToTrackingSpaceRotation_ != null) {
            size += 1 + pb::CodedOutputStream.ComputeMessageSize(RootToTrackingSpaceRotation);
          }
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(AvatarSystemStreamData other) {
          if (other == null) {
            return;
          }
          avatarSystemUpdateData_.Add(other.avatarSystemUpdateData_);
          trackingSpacePoses_.Add(other.trackingSpacePoses_);
          if (other.rootToTrackingSpaceRotation_ != null) {
            if (rootToTrackingSpaceRotation_ == null) {
              RootToTrackingSpaceRotation = new global::RecRoom.Protobuf.Core.Vector3Data();
            }
            RootToTrackingSpaceRotation.MergeFrom(other.RootToTrackingSpaceRotation);
          }
          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(pb::CodedInputStream input) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          input.ReadRawMessage(this);
        #else
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                break;
              case 10: {
                avatarSystemUpdateData_.AddEntriesFrom(input, _repeated_avatarSystemUpdateData_codec);
                break;
              }
              case 18: {
                trackingSpacePoses_.AddEntriesFrom(input, _repeated_trackingSpacePoses_codec);
                break;
              }
              case 26: {
                if (rootToTrackingSpaceRotation_ == null) {
                  RootToTrackingSpaceRotation = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                input.ReadMessage(RootToTrackingSpaceRotation);
                break;
              }
            }
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                break;
              case 10: {
                avatarSystemUpdateData_.AddEntriesFrom(ref input, _repeated_avatarSystemUpdateData_codec);
                break;
              }
              case 18: {
                trackingSpacePoses_.AddEntriesFrom(ref input, _repeated_trackingSpacePoses_codec);
                break;
              }
              case 26: {
                if (rootToTrackingSpaceRotation_ == null) {
                  RootToTrackingSpaceRotation = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                input.ReadMessage(RootToTrackingSpaceRotation);
                break;
              }
            }
          }
        }
        #endif

        #region Nested types
        /// <summary>Container for nested types declared in the AvatarSystemStreamData message type.</summary>
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static partial class Types {
          [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
          public sealed partial class AvatarSystemUpdateData : pb::IMessage<AvatarSystemUpdateData>
          #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
              , pb::IBufferMessage
          #endif
          {
            private static readonly pb::MessageParser<AvatarSystemUpdateData> _parser = new pb::MessageParser<AvatarSystemUpdateData>(() => new AvatarSystemUpdateData());
            private pb::UnknownFieldSet _unknownFields;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public static pb::MessageParser<AvatarSystemUpdateData> Parser { get { return _parser; } }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public static pbr::MessageDescriptor Descriptor {
              get { return global::RecRoom.Protobuf.HolotarBlobData.Types.AvatarSystemStreamData.Descriptor.NestedTypes[0]; }
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            pbr::MessageDescriptor pb::IMessage.Descriptor {
              get { return Descriptor; }
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public AvatarSystemUpdateData() {
              OnConstruction();
            }

            partial void OnConstruction();

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public AvatarSystemUpdateData(AvatarSystemUpdateData other) : this() {
              isLocal_ = other.isLocal_;
              desiredAvatarScale_ = other.desiredAvatarScale_;
              playerUp_ = other.playerUp_ != null ? other.playerUp_.Clone() : null;
              forwardYawReference_ = other.forwardYawReference_ != null ? other.forwardYawReference_.Clone() : null;
              torsoForwardOverride_ = other.torsoForwardOverride_ != null ? other.torsoForwardOverride_.Clone() : null;
              pelvisAnchorPosition_ = other.pelvisAnchorPosition_ != null ? other.pelvisAnchorPosition_.Clone() : null;
              isPlayerSteering_ = other.isPlayerSteering_;
              isPlayerSeated_ = other.isPlayerSeated_;
              isPlayerFlying_ = other.isPlayerFlying_;
              isPlayerWallClimbing_ = other.isPlayerWallClimbing_;
              wallClimbNormal_ = other.wallClimbNormal_ != null ? other.wallClimbNormal_.Clone() : null;
              isPlayerWallRunning_ = other.isPlayerWallRunning_;
              wallRunWallTangent_ = other.wallRunWallTangent_ != null ? other.wallRunWallTangent_.Clone() : null;
              isPlayerClambering_ = other.isPlayerClambering_;
              clamberWallNormal_ = other.clamberWallNormal_ != null ? other.clamberWallNormal_.Clone() : null;
              clamberTimeRemaining_ = other.clamberTimeRemaining_;
              playerSteeringVelocity_ = other.playerSteeringVelocity_ != null ? other.playerSteeringVelocity_.Clone() : null;
              isPlayerFalling_ = other.isPlayerFalling_;
              isPlayerStartingSlide_ = other.isPlayerStartingSlide_;
              isPlayerSliding_ = other.isPlayerSliding_;
              isPlayerLanding_ = other.isPlayerLanding_;
              isPlayerSeatedInSittingPosture_ = other.isPlayerSeatedInSittingPosture_;
              isPlayerWallRunOnRightSide_ = other.isPlayerWallRunOnRightSide_;
              isPlayerStartingJump_ = other.isPlayerStartingJump_;
              isPlayerStartingTeleport_ = other.isPlayerStartingTeleport_;
              isPlayerTeleporting_ = other.isPlayerTeleporting_;
              isPlayerCrouching_ = other.isPlayerCrouching_;
              isPlayerProne_ = other.isPlayerProne_;
              proneNormal_ = other.proneNormal_ != null ? other.proneNormal_.Clone() : null;
              rightHandIkWeight_ = other.rightHandIkWeight_;
              leftHandIkWeight_ = other.leftHandIkWeight_;
              timestamp_ = other.timestamp_;
              doGroundOffset_ = other.doGroundOffset_;
              _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public AvatarSystemUpdateData Clone() {
              return new AvatarSystemUpdateData(this);
            }

            /// <summary>Field number for the "is_local" field.</summary>
            public const int IsLocalFieldNumber = 2;
            private bool isLocal_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsLocal {
              get { return isLocal_; }
              set {
                isLocal_ = value;
              }
            }

            /// <summary>Field number for the "desired_avatar_scale" field.</summary>
            public const int DesiredAvatarScaleFieldNumber = 3;
            private float desiredAvatarScale_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public float DesiredAvatarScale {
              get { return desiredAvatarScale_; }
              set {
                desiredAvatarScale_ = value;
              }
            }

            /// <summary>Field number for the "player_up" field.</summary>
            public const int PlayerUpFieldNumber = 4;
            private global::RecRoom.Protobuf.Core.Vector3Data playerUp_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public global::RecRoom.Protobuf.Core.Vector3Data PlayerUp {
              get { return playerUp_; }
              set {
                playerUp_ = value;
              }
            }

            /// <summary>Field number for the "forward_yaw_reference" field.</summary>
            public const int ForwardYawReferenceFieldNumber = 5;
            private global::RecRoom.Protobuf.Core.Vector3Data forwardYawReference_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public global::RecRoom.Protobuf.Core.Vector3Data ForwardYawReference {
              get { return forwardYawReference_; }
              set {
                forwardYawReference_ = value;
              }
            }

            /// <summary>Field number for the "torso_forward_override" field.</summary>
            public const int TorsoForwardOverrideFieldNumber = 6;
            private global::RecRoom.Protobuf.Core.Vector3Data torsoForwardOverride_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public global::RecRoom.Protobuf.Core.Vector3Data TorsoForwardOverride {
              get { return torsoForwardOverride_; }
              set {
                torsoForwardOverride_ = value;
              }
            }

            /// <summary>Field number for the "pelvis_anchor_position" field.</summary>
            public const int PelvisAnchorPositionFieldNumber = 7;
            private global::RecRoom.Protobuf.Core.Vector3Data pelvisAnchorPosition_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public global::RecRoom.Protobuf.Core.Vector3Data PelvisAnchorPosition {
              get { return pelvisAnchorPosition_; }
              set {
                pelvisAnchorPosition_ = value;
              }
            }

            /// <summary>Field number for the "is_player_steering" field.</summary>
            public const int IsPlayerSteeringFieldNumber = 8;
            private bool isPlayerSteering_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsPlayerSteering {
              get { return isPlayerSteering_; }
              set {
                isPlayerSteering_ = value;
              }
            }

            /// <summary>Field number for the "is_player_seated" field.</summary>
            public const int IsPlayerSeatedFieldNumber = 9;
            private bool isPlayerSeated_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsPlayerSeated {
              get { return isPlayerSeated_; }
              set {
                isPlayerSeated_ = value;
              }
            }

            /// <summary>Field number for the "is_player_flying" field.</summary>
            public const int IsPlayerFlyingFieldNumber = 10;
            private bool isPlayerFlying_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsPlayerFlying {
              get { return isPlayerFlying_; }
              set {
                isPlayerFlying_ = value;
              }
            }

            /// <summary>Field number for the "is_player_wall_climbing" field.</summary>
            public const int IsPlayerWallClimbingFieldNumber = 11;
            private bool isPlayerWallClimbing_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsPlayerWallClimbing {
              get { return isPlayerWallClimbing_; }
              set {
                isPlayerWallClimbing_ = value;
              }
            }

            /// <summary>Field number for the "wall_climb_normal" field.</summary>
            public const int WallClimbNormalFieldNumber = 12;
            private global::RecRoom.Protobuf.Core.Vector3Data wallClimbNormal_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public global::RecRoom.Protobuf.Core.Vector3Data WallClimbNormal {
              get { return wallClimbNormal_; }
              set {
                wallClimbNormal_ = value;
              }
            }

            /// <summary>Field number for the "is_player_wall_running" field.</summary>
            public const int IsPlayerWallRunningFieldNumber = 13;
            private bool isPlayerWallRunning_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsPlayerWallRunning {
              get { return isPlayerWallRunning_; }
              set {
                isPlayerWallRunning_ = value;
              }
            }

            /// <summary>Field number for the "wall_run_wall_tangent" field.</summary>
            public const int WallRunWallTangentFieldNumber = 14;
            private global::RecRoom.Protobuf.Core.Vector3Data wallRunWallTangent_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public global::RecRoom.Protobuf.Core.Vector3Data WallRunWallTangent {
              get { return wallRunWallTangent_; }
              set {
                wallRunWallTangent_ = value;
              }
            }

            /// <summary>Field number for the "is_player_clambering" field.</summary>
            public const int IsPlayerClamberingFieldNumber = 15;
            private bool isPlayerClambering_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsPlayerClambering {
              get { return isPlayerClambering_; }
              set {
                isPlayerClambering_ = value;
              }
            }

            /// <summary>Field number for the "clamber_wall_normal" field.</summary>
            public const int ClamberWallNormalFieldNumber = 16;
            private global::RecRoom.Protobuf.Core.Vector3Data clamberWallNormal_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public global::RecRoom.Protobuf.Core.Vector3Data ClamberWallNormal {
              get { return clamberWallNormal_; }
              set {
                clamberWallNormal_ = value;
              }
            }

            /// <summary>Field number for the "clamber_time_remaining" field.</summary>
            public const int ClamberTimeRemainingFieldNumber = 17;
            private float clamberTimeRemaining_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public float ClamberTimeRemaining {
              get { return clamberTimeRemaining_; }
              set {
                clamberTimeRemaining_ = value;
              }
            }

            /// <summary>Field number for the "player_steering_velocity" field.</summary>
            public const int PlayerSteeringVelocityFieldNumber = 18;
            private global::RecRoom.Protobuf.Core.Vector3Data playerSteeringVelocity_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public global::RecRoom.Protobuf.Core.Vector3Data PlayerSteeringVelocity {
              get { return playerSteeringVelocity_; }
              set {
                playerSteeringVelocity_ = value;
              }
            }

            /// <summary>Field number for the "is_player_falling" field.</summary>
            public const int IsPlayerFallingFieldNumber = 19;
            private bool isPlayerFalling_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsPlayerFalling {
              get { return isPlayerFalling_; }
              set {
                isPlayerFalling_ = value;
              }
            }

            /// <summary>Field number for the "is_player_starting_slide" field.</summary>
            public const int IsPlayerStartingSlideFieldNumber = 20;
            private bool isPlayerStartingSlide_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsPlayerStartingSlide {
              get { return isPlayerStartingSlide_; }
              set {
                isPlayerStartingSlide_ = value;
              }
            }

            /// <summary>Field number for the "is_player_sliding" field.</summary>
            public const int IsPlayerSlidingFieldNumber = 21;
            private bool isPlayerSliding_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsPlayerSliding {
              get { return isPlayerSliding_; }
              set {
                isPlayerSliding_ = value;
              }
            }

            /// <summary>Field number for the "is_player_landing" field.</summary>
            public const int IsPlayerLandingFieldNumber = 22;
            private bool isPlayerLanding_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsPlayerLanding {
              get { return isPlayerLanding_; }
              set {
                isPlayerLanding_ = value;
              }
            }

            /// <summary>Field number for the "is_player_seated_in_sitting_posture" field.</summary>
            public const int IsPlayerSeatedInSittingPostureFieldNumber = 23;
            private bool isPlayerSeatedInSittingPosture_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsPlayerSeatedInSittingPosture {
              get { return isPlayerSeatedInSittingPosture_; }
              set {
                isPlayerSeatedInSittingPosture_ = value;
              }
            }

            /// <summary>Field number for the "is_player_wall_run_on_right_side" field.</summary>
            public const int IsPlayerWallRunOnRightSideFieldNumber = 24;
            private bool isPlayerWallRunOnRightSide_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsPlayerWallRunOnRightSide {
              get { return isPlayerWallRunOnRightSide_; }
              set {
                isPlayerWallRunOnRightSide_ = value;
              }
            }

            /// <summary>Field number for the "is_player_starting_jump" field.</summary>
            public const int IsPlayerStartingJumpFieldNumber = 25;
            private bool isPlayerStartingJump_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsPlayerStartingJump {
              get { return isPlayerStartingJump_; }
              set {
                isPlayerStartingJump_ = value;
              }
            }

            /// <summary>Field number for the "is_player_starting_teleport" field.</summary>
            public const int IsPlayerStartingTeleportFieldNumber = 26;
            private bool isPlayerStartingTeleport_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsPlayerStartingTeleport {
              get { return isPlayerStartingTeleport_; }
              set {
                isPlayerStartingTeleport_ = value;
              }
            }

            /// <summary>Field number for the "is_player_teleporting" field.</summary>
            public const int IsPlayerTeleportingFieldNumber = 27;
            private bool isPlayerTeleporting_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsPlayerTeleporting {
              get { return isPlayerTeleporting_; }
              set {
                isPlayerTeleporting_ = value;
              }
            }

            /// <summary>Field number for the "is_player_crouching" field.</summary>
            public const int IsPlayerCrouchingFieldNumber = 28;
            private bool isPlayerCrouching_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsPlayerCrouching {
              get { return isPlayerCrouching_; }
              set {
                isPlayerCrouching_ = value;
              }
            }

            /// <summary>Field number for the "is_player_prone" field.</summary>
            public const int IsPlayerProneFieldNumber = 29;
            private bool isPlayerProne_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool IsPlayerProne {
              get { return isPlayerProne_; }
              set {
                isPlayerProne_ = value;
              }
            }

            /// <summary>Field number for the "prone_normal" field.</summary>
            public const int ProneNormalFieldNumber = 30;
            private global::RecRoom.Protobuf.Core.Vector3Data proneNormal_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public global::RecRoom.Protobuf.Core.Vector3Data ProneNormal {
              get { return proneNormal_; }
              set {
                proneNormal_ = value;
              }
            }

            /// <summary>Field number for the "right_hand_ik_weight" field.</summary>
            public const int RightHandIkWeightFieldNumber = 31;
            private float rightHandIkWeight_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public float RightHandIkWeight {
              get { return rightHandIkWeight_; }
              set {
                rightHandIkWeight_ = value;
              }
            }

            /// <summary>Field number for the "left_hand_ik_weight" field.</summary>
            public const int LeftHandIkWeightFieldNumber = 32;
            private float leftHandIkWeight_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public float LeftHandIkWeight {
              get { return leftHandIkWeight_; }
              set {
                leftHandIkWeight_ = value;
              }
            }

            /// <summary>Field number for the "timestamp" field.</summary>
            public const int TimestampFieldNumber = 33;
            private float timestamp_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public float Timestamp {
              get { return timestamp_; }
              set {
                timestamp_ = value;
              }
            }

            /// <summary>Field number for the "do_ground_offset" field.</summary>
            public const int DoGroundOffsetFieldNumber = 34;
            private bool doGroundOffset_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool DoGroundOffset {
              get { return doGroundOffset_; }
              set {
                doGroundOffset_ = value;
              }
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public override bool Equals(object other) {
              return Equals(other as AvatarSystemUpdateData);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool Equals(AvatarSystemUpdateData other) {
              if (ReferenceEquals(other, null)) {
                return false;
              }
              if (ReferenceEquals(other, this)) {
                return true;
              }
              if (IsLocal != other.IsLocal) return false;
              if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(DesiredAvatarScale, other.DesiredAvatarScale)) return false;
              if (!object.Equals(PlayerUp, other.PlayerUp)) return false;
              if (!object.Equals(ForwardYawReference, other.ForwardYawReference)) return false;
              if (!object.Equals(TorsoForwardOverride, other.TorsoForwardOverride)) return false;
              if (!object.Equals(PelvisAnchorPosition, other.PelvisAnchorPosition)) return false;
              if (IsPlayerSteering != other.IsPlayerSteering) return false;
              if (IsPlayerSeated != other.IsPlayerSeated) return false;
              if (IsPlayerFlying != other.IsPlayerFlying) return false;
              if (IsPlayerWallClimbing != other.IsPlayerWallClimbing) return false;
              if (!object.Equals(WallClimbNormal, other.WallClimbNormal)) return false;
              if (IsPlayerWallRunning != other.IsPlayerWallRunning) return false;
              if (!object.Equals(WallRunWallTangent, other.WallRunWallTangent)) return false;
              if (IsPlayerClambering != other.IsPlayerClambering) return false;
              if (!object.Equals(ClamberWallNormal, other.ClamberWallNormal)) return false;
              if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ClamberTimeRemaining, other.ClamberTimeRemaining)) return false;
              if (!object.Equals(PlayerSteeringVelocity, other.PlayerSteeringVelocity)) return false;
              if (IsPlayerFalling != other.IsPlayerFalling) return false;
              if (IsPlayerStartingSlide != other.IsPlayerStartingSlide) return false;
              if (IsPlayerSliding != other.IsPlayerSliding) return false;
              if (IsPlayerLanding != other.IsPlayerLanding) return false;
              if (IsPlayerSeatedInSittingPosture != other.IsPlayerSeatedInSittingPosture) return false;
              if (IsPlayerWallRunOnRightSide != other.IsPlayerWallRunOnRightSide) return false;
              if (IsPlayerStartingJump != other.IsPlayerStartingJump) return false;
              if (IsPlayerStartingTeleport != other.IsPlayerStartingTeleport) return false;
              if (IsPlayerTeleporting != other.IsPlayerTeleporting) return false;
              if (IsPlayerCrouching != other.IsPlayerCrouching) return false;
              if (IsPlayerProne != other.IsPlayerProne) return false;
              if (!object.Equals(ProneNormal, other.ProneNormal)) return false;
              if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(RightHandIkWeight, other.RightHandIkWeight)) return false;
              if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(LeftHandIkWeight, other.LeftHandIkWeight)) return false;
              if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Timestamp, other.Timestamp)) return false;
              if (DoGroundOffset != other.DoGroundOffset) return false;
              return Equals(_unknownFields, other._unknownFields);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public override int GetHashCode() {
              int hash = 1;
              if (IsLocal != false) hash ^= IsLocal.GetHashCode();
              if (DesiredAvatarScale != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(DesiredAvatarScale);
              if (playerUp_ != null) hash ^= PlayerUp.GetHashCode();
              if (forwardYawReference_ != null) hash ^= ForwardYawReference.GetHashCode();
              if (torsoForwardOverride_ != null) hash ^= TorsoForwardOverride.GetHashCode();
              if (pelvisAnchorPosition_ != null) hash ^= PelvisAnchorPosition.GetHashCode();
              if (IsPlayerSteering != false) hash ^= IsPlayerSteering.GetHashCode();
              if (IsPlayerSeated != false) hash ^= IsPlayerSeated.GetHashCode();
              if (IsPlayerFlying != false) hash ^= IsPlayerFlying.GetHashCode();
              if (IsPlayerWallClimbing != false) hash ^= IsPlayerWallClimbing.GetHashCode();
              if (wallClimbNormal_ != null) hash ^= WallClimbNormal.GetHashCode();
              if (IsPlayerWallRunning != false) hash ^= IsPlayerWallRunning.GetHashCode();
              if (wallRunWallTangent_ != null) hash ^= WallRunWallTangent.GetHashCode();
              if (IsPlayerClambering != false) hash ^= IsPlayerClambering.GetHashCode();
              if (clamberWallNormal_ != null) hash ^= ClamberWallNormal.GetHashCode();
              if (ClamberTimeRemaining != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ClamberTimeRemaining);
              if (playerSteeringVelocity_ != null) hash ^= PlayerSteeringVelocity.GetHashCode();
              if (IsPlayerFalling != false) hash ^= IsPlayerFalling.GetHashCode();
              if (IsPlayerStartingSlide != false) hash ^= IsPlayerStartingSlide.GetHashCode();
              if (IsPlayerSliding != false) hash ^= IsPlayerSliding.GetHashCode();
              if (IsPlayerLanding != false) hash ^= IsPlayerLanding.GetHashCode();
              if (IsPlayerSeatedInSittingPosture != false) hash ^= IsPlayerSeatedInSittingPosture.GetHashCode();
              if (IsPlayerWallRunOnRightSide != false) hash ^= IsPlayerWallRunOnRightSide.GetHashCode();
              if (IsPlayerStartingJump != false) hash ^= IsPlayerStartingJump.GetHashCode();
              if (IsPlayerStartingTeleport != false) hash ^= IsPlayerStartingTeleport.GetHashCode();
              if (IsPlayerTeleporting != false) hash ^= IsPlayerTeleporting.GetHashCode();
              if (IsPlayerCrouching != false) hash ^= IsPlayerCrouching.GetHashCode();
              if (IsPlayerProne != false) hash ^= IsPlayerProne.GetHashCode();
              if (proneNormal_ != null) hash ^= ProneNormal.GetHashCode();
              if (RightHandIkWeight != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(RightHandIkWeight);
              if (LeftHandIkWeight != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(LeftHandIkWeight);
              if (Timestamp != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Timestamp);
              if (DoGroundOffset != false) hash ^= DoGroundOffset.GetHashCode();
              if (_unknownFields != null) {
                hash ^= _unknownFields.GetHashCode();
              }
              return hash;
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public override string ToString() {
              return pb::JsonFormatter.ToDiagnosticString(this);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public void WriteTo(pb::CodedOutputStream output) {
            #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
              output.WriteRawMessage(this);
            #else
              if (IsLocal != false) {
                output.WriteRawTag(16);
                output.WriteBool(IsLocal);
              }
              if (DesiredAvatarScale != 0F) {
                output.WriteRawTag(29);
                output.WriteFloat(DesiredAvatarScale);
              }
              if (playerUp_ != null) {
                output.WriteRawTag(34);
                output.WriteMessage(PlayerUp);
              }
              if (forwardYawReference_ != null) {
                output.WriteRawTag(42);
                output.WriteMessage(ForwardYawReference);
              }
              if (torsoForwardOverride_ != null) {
                output.WriteRawTag(50);
                output.WriteMessage(TorsoForwardOverride);
              }
              if (pelvisAnchorPosition_ != null) {
                output.WriteRawTag(58);
                output.WriteMessage(PelvisAnchorPosition);
              }
              if (IsPlayerSteering != false) {
                output.WriteRawTag(64);
                output.WriteBool(IsPlayerSteering);
              }
              if (IsPlayerSeated != false) {
                output.WriteRawTag(72);
                output.WriteBool(IsPlayerSeated);
              }
              if (IsPlayerFlying != false) {
                output.WriteRawTag(80);
                output.WriteBool(IsPlayerFlying);
              }
              if (IsPlayerWallClimbing != false) {
                output.WriteRawTag(88);
                output.WriteBool(IsPlayerWallClimbing);
              }
              if (wallClimbNormal_ != null) {
                output.WriteRawTag(98);
                output.WriteMessage(WallClimbNormal);
              }
              if (IsPlayerWallRunning != false) {
                output.WriteRawTag(104);
                output.WriteBool(IsPlayerWallRunning);
              }
              if (wallRunWallTangent_ != null) {
                output.WriteRawTag(114);
                output.WriteMessage(WallRunWallTangent);
              }
              if (IsPlayerClambering != false) {
                output.WriteRawTag(120);
                output.WriteBool(IsPlayerClambering);
              }
              if (clamberWallNormal_ != null) {
                output.WriteRawTag(130, 1);
                output.WriteMessage(ClamberWallNormal);
              }
              if (ClamberTimeRemaining != 0F) {
                output.WriteRawTag(141, 1);
                output.WriteFloat(ClamberTimeRemaining);
              }
              if (playerSteeringVelocity_ != null) {
                output.WriteRawTag(146, 1);
                output.WriteMessage(PlayerSteeringVelocity);
              }
              if (IsPlayerFalling != false) {
                output.WriteRawTag(152, 1);
                output.WriteBool(IsPlayerFalling);
              }
              if (IsPlayerStartingSlide != false) {
                output.WriteRawTag(160, 1);
                output.WriteBool(IsPlayerStartingSlide);
              }
              if (IsPlayerSliding != false) {
                output.WriteRawTag(168, 1);
                output.WriteBool(IsPlayerSliding);
              }
              if (IsPlayerLanding != false) {
                output.WriteRawTag(176, 1);
                output.WriteBool(IsPlayerLanding);
              }
              if (IsPlayerSeatedInSittingPosture != false) {
                output.WriteRawTag(184, 1);
                output.WriteBool(IsPlayerSeatedInSittingPosture);
              }
              if (IsPlayerWallRunOnRightSide != false) {
                output.WriteRawTag(192, 1);
                output.WriteBool(IsPlayerWallRunOnRightSide);
              }
              if (IsPlayerStartingJump != false) {
                output.WriteRawTag(200, 1);
                output.WriteBool(IsPlayerStartingJump);
              }
              if (IsPlayerStartingTeleport != false) {
                output.WriteRawTag(208, 1);
                output.WriteBool(IsPlayerStartingTeleport);
              }
              if (IsPlayerTeleporting != false) {
                output.WriteRawTag(216, 1);
                output.WriteBool(IsPlayerTeleporting);
              }
              if (IsPlayerCrouching != false) {
                output.WriteRawTag(224, 1);
                output.WriteBool(IsPlayerCrouching);
              }
              if (IsPlayerProne != false) {
                output.WriteRawTag(232, 1);
                output.WriteBool(IsPlayerProne);
              }
              if (proneNormal_ != null) {
                output.WriteRawTag(242, 1);
                output.WriteMessage(ProneNormal);
              }
              if (RightHandIkWeight != 0F) {
                output.WriteRawTag(253, 1);
                output.WriteFloat(RightHandIkWeight);
              }
              if (LeftHandIkWeight != 0F) {
                output.WriteRawTag(133, 2);
                output.WriteFloat(LeftHandIkWeight);
              }
              if (Timestamp != 0F) {
                output.WriteRawTag(141, 2);
                output.WriteFloat(Timestamp);
              }
              if (DoGroundOffset != false) {
                output.WriteRawTag(144, 2);
                output.WriteBool(DoGroundOffset);
              }
              if (_unknownFields != null) {
                _unknownFields.WriteTo(output);
              }
            #endif
            }

            #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
              if (IsLocal != false) {
                output.WriteRawTag(16);
                output.WriteBool(IsLocal);
              }
              if (DesiredAvatarScale != 0F) {
                output.WriteRawTag(29);
                output.WriteFloat(DesiredAvatarScale);
              }
              if (playerUp_ != null) {
                output.WriteRawTag(34);
                output.WriteMessage(PlayerUp);
              }
              if (forwardYawReference_ != null) {
                output.WriteRawTag(42);
                output.WriteMessage(ForwardYawReference);
              }
              if (torsoForwardOverride_ != null) {
                output.WriteRawTag(50);
                output.WriteMessage(TorsoForwardOverride);
              }
              if (pelvisAnchorPosition_ != null) {
                output.WriteRawTag(58);
                output.WriteMessage(PelvisAnchorPosition);
              }
              if (IsPlayerSteering != false) {
                output.WriteRawTag(64);
                output.WriteBool(IsPlayerSteering);
              }
              if (IsPlayerSeated != false) {
                output.WriteRawTag(72);
                output.WriteBool(IsPlayerSeated);
              }
              if (IsPlayerFlying != false) {
                output.WriteRawTag(80);
                output.WriteBool(IsPlayerFlying);
              }
              if (IsPlayerWallClimbing != false) {
                output.WriteRawTag(88);
                output.WriteBool(IsPlayerWallClimbing);
              }
              if (wallClimbNormal_ != null) {
                output.WriteRawTag(98);
                output.WriteMessage(WallClimbNormal);
              }
              if (IsPlayerWallRunning != false) {
                output.WriteRawTag(104);
                output.WriteBool(IsPlayerWallRunning);
              }
              if (wallRunWallTangent_ != null) {
                output.WriteRawTag(114);
                output.WriteMessage(WallRunWallTangent);
              }
              if (IsPlayerClambering != false) {
                output.WriteRawTag(120);
                output.WriteBool(IsPlayerClambering);
              }
              if (clamberWallNormal_ != null) {
                output.WriteRawTag(130, 1);
                output.WriteMessage(ClamberWallNormal);
              }
              if (ClamberTimeRemaining != 0F) {
                output.WriteRawTag(141, 1);
                output.WriteFloat(ClamberTimeRemaining);
              }
              if (playerSteeringVelocity_ != null) {
                output.WriteRawTag(146, 1);
                output.WriteMessage(PlayerSteeringVelocity);
              }
              if (IsPlayerFalling != false) {
                output.WriteRawTag(152, 1);
                output.WriteBool(IsPlayerFalling);
              }
              if (IsPlayerStartingSlide != false) {
                output.WriteRawTag(160, 1);
                output.WriteBool(IsPlayerStartingSlide);
              }
              if (IsPlayerSliding != false) {
                output.WriteRawTag(168, 1);
                output.WriteBool(IsPlayerSliding);
              }
              if (IsPlayerLanding != false) {
                output.WriteRawTag(176, 1);
                output.WriteBool(IsPlayerLanding);
              }
              if (IsPlayerSeatedInSittingPosture != false) {
                output.WriteRawTag(184, 1);
                output.WriteBool(IsPlayerSeatedInSittingPosture);
              }
              if (IsPlayerWallRunOnRightSide != false) {
                output.WriteRawTag(192, 1);
                output.WriteBool(IsPlayerWallRunOnRightSide);
              }
              if (IsPlayerStartingJump != false) {
                output.WriteRawTag(200, 1);
                output.WriteBool(IsPlayerStartingJump);
              }
              if (IsPlayerStartingTeleport != false) {
                output.WriteRawTag(208, 1);
                output.WriteBool(IsPlayerStartingTeleport);
              }
              if (IsPlayerTeleporting != false) {
                output.WriteRawTag(216, 1);
                output.WriteBool(IsPlayerTeleporting);
              }
              if (IsPlayerCrouching != false) {
                output.WriteRawTag(224, 1);
                output.WriteBool(IsPlayerCrouching);
              }
              if (IsPlayerProne != false) {
                output.WriteRawTag(232, 1);
                output.WriteBool(IsPlayerProne);
              }
              if (proneNormal_ != null) {
                output.WriteRawTag(242, 1);
                output.WriteMessage(ProneNormal);
              }
              if (RightHandIkWeight != 0F) {
                output.WriteRawTag(253, 1);
                output.WriteFloat(RightHandIkWeight);
              }
              if (LeftHandIkWeight != 0F) {
                output.WriteRawTag(133, 2);
                output.WriteFloat(LeftHandIkWeight);
              }
              if (Timestamp != 0F) {
                output.WriteRawTag(141, 2);
                output.WriteFloat(Timestamp);
              }
              if (DoGroundOffset != false) {
                output.WriteRawTag(144, 2);
                output.WriteBool(DoGroundOffset);
              }
              if (_unknownFields != null) {
                _unknownFields.WriteTo(ref output);
              }
            }
            #endif

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public int CalculateSize() {
              int size = 0;
              if (IsLocal != false) {
                size += 1 + 1;
              }
              if (DesiredAvatarScale != 0F) {
                size += 1 + 4;
              }
              if (playerUp_ != null) {
                size += 1 + pb::CodedOutputStream.ComputeMessageSize(PlayerUp);
              }
              if (forwardYawReference_ != null) {
                size += 1 + pb::CodedOutputStream.ComputeMessageSize(ForwardYawReference);
              }
              if (torsoForwardOverride_ != null) {
                size += 1 + pb::CodedOutputStream.ComputeMessageSize(TorsoForwardOverride);
              }
              if (pelvisAnchorPosition_ != null) {
                size += 1 + pb::CodedOutputStream.ComputeMessageSize(PelvisAnchorPosition);
              }
              if (IsPlayerSteering != false) {
                size += 1 + 1;
              }
              if (IsPlayerSeated != false) {
                size += 1 + 1;
              }
              if (IsPlayerFlying != false) {
                size += 1 + 1;
              }
              if (IsPlayerWallClimbing != false) {
                size += 1 + 1;
              }
              if (wallClimbNormal_ != null) {
                size += 1 + pb::CodedOutputStream.ComputeMessageSize(WallClimbNormal);
              }
              if (IsPlayerWallRunning != false) {
                size += 1 + 1;
              }
              if (wallRunWallTangent_ != null) {
                size += 1 + pb::CodedOutputStream.ComputeMessageSize(WallRunWallTangent);
              }
              if (IsPlayerClambering != false) {
                size += 1 + 1;
              }
              if (clamberWallNormal_ != null) {
                size += 2 + pb::CodedOutputStream.ComputeMessageSize(ClamberWallNormal);
              }
              if (ClamberTimeRemaining != 0F) {
                size += 2 + 4;
              }
              if (playerSteeringVelocity_ != null) {
                size += 2 + pb::CodedOutputStream.ComputeMessageSize(PlayerSteeringVelocity);
              }
              if (IsPlayerFalling != false) {
                size += 2 + 1;
              }
              if (IsPlayerStartingSlide != false) {
                size += 2 + 1;
              }
              if (IsPlayerSliding != false) {
                size += 2 + 1;
              }
              if (IsPlayerLanding != false) {
                size += 2 + 1;
              }
              if (IsPlayerSeatedInSittingPosture != false) {
                size += 2 + 1;
              }
              if (IsPlayerWallRunOnRightSide != false) {
                size += 2 + 1;
              }
              if (IsPlayerStartingJump != false) {
                size += 2 + 1;
              }
              if (IsPlayerStartingTeleport != false) {
                size += 2 + 1;
              }
              if (IsPlayerTeleporting != false) {
                size += 2 + 1;
              }
              if (IsPlayerCrouching != false) {
                size += 2 + 1;
              }
              if (IsPlayerProne != false) {
                size += 2 + 1;
              }
              if (proneNormal_ != null) {
                size += 2 + pb::CodedOutputStream.ComputeMessageSize(ProneNormal);
              }
              if (RightHandIkWeight != 0F) {
                size += 2 + 4;
              }
              if (LeftHandIkWeight != 0F) {
                size += 2 + 4;
              }
              if (Timestamp != 0F) {
                size += 2 + 4;
              }
              if (DoGroundOffset != false) {
                size += 2 + 1;
              }
              if (_unknownFields != null) {
                size += _unknownFields.CalculateSize();
              }
              return size;
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public void MergeFrom(AvatarSystemUpdateData other) {
              if (other == null) {
                return;
              }
              if (other.IsLocal != false) {
                IsLocal = other.IsLocal;
              }
              if (other.DesiredAvatarScale != 0F) {
                DesiredAvatarScale = other.DesiredAvatarScale;
              }
              if (other.playerUp_ != null) {
                if (playerUp_ == null) {
                  PlayerUp = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                PlayerUp.MergeFrom(other.PlayerUp);
              }
              if (other.forwardYawReference_ != null) {
                if (forwardYawReference_ == null) {
                  ForwardYawReference = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                ForwardYawReference.MergeFrom(other.ForwardYawReference);
              }
              if (other.torsoForwardOverride_ != null) {
                if (torsoForwardOverride_ == null) {
                  TorsoForwardOverride = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                TorsoForwardOverride.MergeFrom(other.TorsoForwardOverride);
              }
              if (other.pelvisAnchorPosition_ != null) {
                if (pelvisAnchorPosition_ == null) {
                  PelvisAnchorPosition = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                PelvisAnchorPosition.MergeFrom(other.PelvisAnchorPosition);
              }
              if (other.IsPlayerSteering != false) {
                IsPlayerSteering = other.IsPlayerSteering;
              }
              if (other.IsPlayerSeated != false) {
                IsPlayerSeated = other.IsPlayerSeated;
              }
              if (other.IsPlayerFlying != false) {
                IsPlayerFlying = other.IsPlayerFlying;
              }
              if (other.IsPlayerWallClimbing != false) {
                IsPlayerWallClimbing = other.IsPlayerWallClimbing;
              }
              if (other.wallClimbNormal_ != null) {
                if (wallClimbNormal_ == null) {
                  WallClimbNormal = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                WallClimbNormal.MergeFrom(other.WallClimbNormal);
              }
              if (other.IsPlayerWallRunning != false) {
                IsPlayerWallRunning = other.IsPlayerWallRunning;
              }
              if (other.wallRunWallTangent_ != null) {
                if (wallRunWallTangent_ == null) {
                  WallRunWallTangent = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                WallRunWallTangent.MergeFrom(other.WallRunWallTangent);
              }
              if (other.IsPlayerClambering != false) {
                IsPlayerClambering = other.IsPlayerClambering;
              }
              if (other.clamberWallNormal_ != null) {
                if (clamberWallNormal_ == null) {
                  ClamberWallNormal = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                ClamberWallNormal.MergeFrom(other.ClamberWallNormal);
              }
              if (other.ClamberTimeRemaining != 0F) {
                ClamberTimeRemaining = other.ClamberTimeRemaining;
              }
              if (other.playerSteeringVelocity_ != null) {
                if (playerSteeringVelocity_ == null) {
                  PlayerSteeringVelocity = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                PlayerSteeringVelocity.MergeFrom(other.PlayerSteeringVelocity);
              }
              if (other.IsPlayerFalling != false) {
                IsPlayerFalling = other.IsPlayerFalling;
              }
              if (other.IsPlayerStartingSlide != false) {
                IsPlayerStartingSlide = other.IsPlayerStartingSlide;
              }
              if (other.IsPlayerSliding != false) {
                IsPlayerSliding = other.IsPlayerSliding;
              }
              if (other.IsPlayerLanding != false) {
                IsPlayerLanding = other.IsPlayerLanding;
              }
              if (other.IsPlayerSeatedInSittingPosture != false) {
                IsPlayerSeatedInSittingPosture = other.IsPlayerSeatedInSittingPosture;
              }
              if (other.IsPlayerWallRunOnRightSide != false) {
                IsPlayerWallRunOnRightSide = other.IsPlayerWallRunOnRightSide;
              }
              if (other.IsPlayerStartingJump != false) {
                IsPlayerStartingJump = other.IsPlayerStartingJump;
              }
              if (other.IsPlayerStartingTeleport != false) {
                IsPlayerStartingTeleport = other.IsPlayerStartingTeleport;
              }
              if (other.IsPlayerTeleporting != false) {
                IsPlayerTeleporting = other.IsPlayerTeleporting;
              }
              if (other.IsPlayerCrouching != false) {
                IsPlayerCrouching = other.IsPlayerCrouching;
              }
              if (other.IsPlayerProne != false) {
                IsPlayerProne = other.IsPlayerProne;
              }
              if (other.proneNormal_ != null) {
                if (proneNormal_ == null) {
                  ProneNormal = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                ProneNormal.MergeFrom(other.ProneNormal);
              }
              if (other.RightHandIkWeight != 0F) {
                RightHandIkWeight = other.RightHandIkWeight;
              }
              if (other.LeftHandIkWeight != 0F) {
                LeftHandIkWeight = other.LeftHandIkWeight;
              }
              if (other.Timestamp != 0F) {
                Timestamp = other.Timestamp;
              }
              if (other.DoGroundOffset != false) {
                DoGroundOffset = other.DoGroundOffset;
              }
              _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public void MergeFrom(pb::CodedInputStream input) {
            #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
              input.ReadRawMessage(this);
            #else
              uint tag;
              while ((tag = input.ReadTag()) != 0) {
              if ((tag & 7) == 4) {
                // Abort on any end group tag.
                return;
              }
              switch(tag) {
                  default:
                    _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                    break;
                  case 16: {
                    IsLocal = input.ReadBool();
                    break;
                  }
                  case 29: {
                    DesiredAvatarScale = input.ReadFloat();
                    break;
                  }
                  case 34: {
                    if (playerUp_ == null) {
                      PlayerUp = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(PlayerUp);
                    break;
                  }
                  case 42: {
                    if (forwardYawReference_ == null) {
                      ForwardYawReference = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(ForwardYawReference);
                    break;
                  }
                  case 50: {
                    if (torsoForwardOverride_ == null) {
                      TorsoForwardOverride = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(TorsoForwardOverride);
                    break;
                  }
                  case 58: {
                    if (pelvisAnchorPosition_ == null) {
                      PelvisAnchorPosition = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(PelvisAnchorPosition);
                    break;
                  }
                  case 64: {
                    IsPlayerSteering = input.ReadBool();
                    break;
                  }
                  case 72: {
                    IsPlayerSeated = input.ReadBool();
                    break;
                  }
                  case 80: {
                    IsPlayerFlying = input.ReadBool();
                    break;
                  }
                  case 88: {
                    IsPlayerWallClimbing = input.ReadBool();
                    break;
                  }
                  case 98: {
                    if (wallClimbNormal_ == null) {
                      WallClimbNormal = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(WallClimbNormal);
                    break;
                  }
                  case 104: {
                    IsPlayerWallRunning = input.ReadBool();
                    break;
                  }
                  case 114: {
                    if (wallRunWallTangent_ == null) {
                      WallRunWallTangent = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(WallRunWallTangent);
                    break;
                  }
                  case 120: {
                    IsPlayerClambering = input.ReadBool();
                    break;
                  }
                  case 130: {
                    if (clamberWallNormal_ == null) {
                      ClamberWallNormal = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(ClamberWallNormal);
                    break;
                  }
                  case 141: {
                    ClamberTimeRemaining = input.ReadFloat();
                    break;
                  }
                  case 146: {
                    if (playerSteeringVelocity_ == null) {
                      PlayerSteeringVelocity = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(PlayerSteeringVelocity);
                    break;
                  }
                  case 152: {
                    IsPlayerFalling = input.ReadBool();
                    break;
                  }
                  case 160: {
                    IsPlayerStartingSlide = input.ReadBool();
                    break;
                  }
                  case 168: {
                    IsPlayerSliding = input.ReadBool();
                    break;
                  }
                  case 176: {
                    IsPlayerLanding = input.ReadBool();
                    break;
                  }
                  case 184: {
                    IsPlayerSeatedInSittingPosture = input.ReadBool();
                    break;
                  }
                  case 192: {
                    IsPlayerWallRunOnRightSide = input.ReadBool();
                    break;
                  }
                  case 200: {
                    IsPlayerStartingJump = input.ReadBool();
                    break;
                  }
                  case 208: {
                    IsPlayerStartingTeleport = input.ReadBool();
                    break;
                  }
                  case 216: {
                    IsPlayerTeleporting = input.ReadBool();
                    break;
                  }
                  case 224: {
                    IsPlayerCrouching = input.ReadBool();
                    break;
                  }
                  case 232: {
                    IsPlayerProne = input.ReadBool();
                    break;
                  }
                  case 242: {
                    if (proneNormal_ == null) {
                      ProneNormal = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(ProneNormal);
                    break;
                  }
                  case 253: {
                    RightHandIkWeight = input.ReadFloat();
                    break;
                  }
                  case 261: {
                    LeftHandIkWeight = input.ReadFloat();
                    break;
                  }
                  case 269: {
                    Timestamp = input.ReadFloat();
                    break;
                  }
                  case 272: {
                    DoGroundOffset = input.ReadBool();
                    break;
                  }
                }
              }
            #endif
            }

            #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
              uint tag;
              while ((tag = input.ReadTag()) != 0) {
              if ((tag & 7) == 4) {
                // Abort on any end group tag.
                return;
              }
              switch(tag) {
                  default:
                    _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                    break;
                  case 16: {
                    IsLocal = input.ReadBool();
                    break;
                  }
                  case 29: {
                    DesiredAvatarScale = input.ReadFloat();
                    break;
                  }
                  case 34: {
                    if (playerUp_ == null) {
                      PlayerUp = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(PlayerUp);
                    break;
                  }
                  case 42: {
                    if (forwardYawReference_ == null) {
                      ForwardYawReference = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(ForwardYawReference);
                    break;
                  }
                  case 50: {
                    if (torsoForwardOverride_ == null) {
                      TorsoForwardOverride = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(TorsoForwardOverride);
                    break;
                  }
                  case 58: {
                    if (pelvisAnchorPosition_ == null) {
                      PelvisAnchorPosition = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(PelvisAnchorPosition);
                    break;
                  }
                  case 64: {
                    IsPlayerSteering = input.ReadBool();
                    break;
                  }
                  case 72: {
                    IsPlayerSeated = input.ReadBool();
                    break;
                  }
                  case 80: {
                    IsPlayerFlying = input.ReadBool();
                    break;
                  }
                  case 88: {
                    IsPlayerWallClimbing = input.ReadBool();
                    break;
                  }
                  case 98: {
                    if (wallClimbNormal_ == null) {
                      WallClimbNormal = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(WallClimbNormal);
                    break;
                  }
                  case 104: {
                    IsPlayerWallRunning = input.ReadBool();
                    break;
                  }
                  case 114: {
                    if (wallRunWallTangent_ == null) {
                      WallRunWallTangent = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(WallRunWallTangent);
                    break;
                  }
                  case 120: {
                    IsPlayerClambering = input.ReadBool();
                    break;
                  }
                  case 130: {
                    if (clamberWallNormal_ == null) {
                      ClamberWallNormal = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(ClamberWallNormal);
                    break;
                  }
                  case 141: {
                    ClamberTimeRemaining = input.ReadFloat();
                    break;
                  }
                  case 146: {
                    if (playerSteeringVelocity_ == null) {
                      PlayerSteeringVelocity = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(PlayerSteeringVelocity);
                    break;
                  }
                  case 152: {
                    IsPlayerFalling = input.ReadBool();
                    break;
                  }
                  case 160: {
                    IsPlayerStartingSlide = input.ReadBool();
                    break;
                  }
                  case 168: {
                    IsPlayerSliding = input.ReadBool();
                    break;
                  }
                  case 176: {
                    IsPlayerLanding = input.ReadBool();
                    break;
                  }
                  case 184: {
                    IsPlayerSeatedInSittingPosture = input.ReadBool();
                    break;
                  }
                  case 192: {
                    IsPlayerWallRunOnRightSide = input.ReadBool();
                    break;
                  }
                  case 200: {
                    IsPlayerStartingJump = input.ReadBool();
                    break;
                  }
                  case 208: {
                    IsPlayerStartingTeleport = input.ReadBool();
                    break;
                  }
                  case 216: {
                    IsPlayerTeleporting = input.ReadBool();
                    break;
                  }
                  case 224: {
                    IsPlayerCrouching = input.ReadBool();
                    break;
                  }
                  case 232: {
                    IsPlayerProne = input.ReadBool();
                    break;
                  }
                  case 242: {
                    if (proneNormal_ == null) {
                      ProneNormal = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(ProneNormal);
                    break;
                  }
                  case 253: {
                    RightHandIkWeight = input.ReadFloat();
                    break;
                  }
                  case 261: {
                    LeftHandIkWeight = input.ReadFloat();
                    break;
                  }
                  case 269: {
                    Timestamp = input.ReadFloat();
                    break;
                  }
                  case 272: {
                    DoGroundOffset = input.ReadBool();
                    break;
                  }
                }
              }
            }
            #endif

          }

        }
        #endregion

      }

      [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
      public sealed partial class PlayerPoseData : pb::IMessage<PlayerPoseData>
      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          , pb::IBufferMessage
      #endif
      {
        private static readonly pb::MessageParser<PlayerPoseData> _parser = new pb::MessageParser<PlayerPoseData>(() => new PlayerPoseData());
        private pb::UnknownFieldSet _unknownFields;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pb::MessageParser<PlayerPoseData> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::RecRoom.Protobuf.HolotarBlobData.Descriptor.NestedTypes[3]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        pbr::MessageDescriptor pb::IMessage.Descriptor {
          get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public PlayerPoseData() {
          OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public PlayerPoseData(PlayerPoseData other) : this() {
          samplesPerSecond_ = other.samplesPerSecond_;
          headPoses_ = other.headPoses_ != null ? other.headPoses_.Clone() : null;
          torsoPoses_ = other.torsoPoses_ != null ? other.torsoPoses_.Clone() : null;
          leftHandPoses_ = other.leftHandPoses_ != null ? other.leftHandPoses_.Clone() : null;
          rightHandPoses_ = other.rightHandPoses_ != null ? other.rightHandPoses_.Clone() : null;
          avatarSystemUpdate_ = other.avatarSystemUpdate_ != null ? other.avatarSystemUpdate_.Clone() : null;
          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public PlayerPoseData Clone() {
          return new PlayerPoseData(this);
        }

        /// <summary>Field number for the "samples_per_second" field.</summary>
        public const int SamplesPerSecondFieldNumber = 1;
        private int samplesPerSecond_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public int SamplesPerSecond {
          get { return samplesPerSecond_; }
          set {
            samplesPerSecond_ = value;
          }
        }

        /// <summary>Field number for the "head_poses" field.</summary>
        public const int HeadPosesFieldNumber = 2;
        private global::RecRoom.Protobuf.HolotarBlobData.Types.PoseStreamData headPoses_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::RecRoom.Protobuf.HolotarBlobData.Types.PoseStreamData HeadPoses {
          get { return headPoses_; }
          set {
            headPoses_ = value;
          }
        }

        /// <summary>Field number for the "torso_poses" field.</summary>
        public const int TorsoPosesFieldNumber = 3;
        private global::RecRoom.Protobuf.HolotarBlobData.Types.PoseStreamData torsoPoses_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::RecRoom.Protobuf.HolotarBlobData.Types.PoseStreamData TorsoPoses {
          get { return torsoPoses_; }
          set {
            torsoPoses_ = value;
          }
        }

        /// <summary>Field number for the "left_hand_poses" field.</summary>
        public const int LeftHandPosesFieldNumber = 4;
        private global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData leftHandPoses_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData LeftHandPoses {
          get { return leftHandPoses_; }
          set {
            leftHandPoses_ = value;
          }
        }

        /// <summary>Field number for the "right_hand_poses" field.</summary>
        public const int RightHandPosesFieldNumber = 5;
        private global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData rightHandPoses_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData RightHandPoses {
          get { return rightHandPoses_; }
          set {
            rightHandPoses_ = value;
          }
        }

        /// <summary>Field number for the "avatar_system_update" field.</summary>
        public const int AvatarSystemUpdateFieldNumber = 6;
        private global::RecRoom.Protobuf.HolotarBlobData.Types.AvatarSystemStreamData avatarSystemUpdate_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::RecRoom.Protobuf.HolotarBlobData.Types.AvatarSystemStreamData AvatarSystemUpdate {
          get { return avatarSystemUpdate_; }
          set {
            avatarSystemUpdate_ = value;
          }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override bool Equals(object other) {
          return Equals(other as PlayerPoseData);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool Equals(PlayerPoseData other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (SamplesPerSecond != other.SamplesPerSecond) return false;
          if (!object.Equals(HeadPoses, other.HeadPoses)) return false;
          if (!object.Equals(TorsoPoses, other.TorsoPoses)) return false;
          if (!object.Equals(LeftHandPoses, other.LeftHandPoses)) return false;
          if (!object.Equals(RightHandPoses, other.RightHandPoses)) return false;
          if (!object.Equals(AvatarSystemUpdate, other.AvatarSystemUpdate)) return false;
          return Equals(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override int GetHashCode() {
          int hash = 1;
          if (SamplesPerSecond != 0) hash ^= SamplesPerSecond.GetHashCode();
          if (headPoses_ != null) hash ^= HeadPoses.GetHashCode();
          if (torsoPoses_ != null) hash ^= TorsoPoses.GetHashCode();
          if (leftHandPoses_ != null) hash ^= LeftHandPoses.GetHashCode();
          if (rightHandPoses_ != null) hash ^= RightHandPoses.GetHashCode();
          if (avatarSystemUpdate_ != null) hash ^= AvatarSystemUpdate.GetHashCode();
          if (_unknownFields != null) {
            hash ^= _unknownFields.GetHashCode();
          }
          return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override string ToString() {
          return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void WriteTo(pb::CodedOutputStream output) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          output.WriteRawMessage(this);
        #else
          if (SamplesPerSecond != 0) {
            output.WriteRawTag(8);
            output.WriteInt32(SamplesPerSecond);
          }
          if (headPoses_ != null) {
            output.WriteRawTag(18);
            output.WriteMessage(HeadPoses);
          }
          if (torsoPoses_ != null) {
            output.WriteRawTag(26);
            output.WriteMessage(TorsoPoses);
          }
          if (leftHandPoses_ != null) {
            output.WriteRawTag(34);
            output.WriteMessage(LeftHandPoses);
          }
          if (rightHandPoses_ != null) {
            output.WriteRawTag(42);
            output.WriteMessage(RightHandPoses);
          }
          if (avatarSystemUpdate_ != null) {
            output.WriteRawTag(50);
            output.WriteMessage(AvatarSystemUpdate);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(output);
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
          if (SamplesPerSecond != 0) {
            output.WriteRawTag(8);
            output.WriteInt32(SamplesPerSecond);
          }
          if (headPoses_ != null) {
            output.WriteRawTag(18);
            output.WriteMessage(HeadPoses);
          }
          if (torsoPoses_ != null) {
            output.WriteRawTag(26);
            output.WriteMessage(TorsoPoses);
          }
          if (leftHandPoses_ != null) {
            output.WriteRawTag(34);
            output.WriteMessage(LeftHandPoses);
          }
          if (rightHandPoses_ != null) {
            output.WriteRawTag(42);
            output.WriteMessage(RightHandPoses);
          }
          if (avatarSystemUpdate_ != null) {
            output.WriteRawTag(50);
            output.WriteMessage(AvatarSystemUpdate);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(ref output);
          }
        }
        #endif

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public int CalculateSize() {
          int size = 0;
          if (SamplesPerSecond != 0) {
            size += 1 + pb::CodedOutputStream.ComputeInt32Size(SamplesPerSecond);
          }
          if (headPoses_ != null) {
            size += 1 + pb::CodedOutputStream.ComputeMessageSize(HeadPoses);
          }
          if (torsoPoses_ != null) {
            size += 1 + pb::CodedOutputStream.ComputeMessageSize(TorsoPoses);
          }
          if (leftHandPoses_ != null) {
            size += 1 + pb::CodedOutputStream.ComputeMessageSize(LeftHandPoses);
          }
          if (rightHandPoses_ != null) {
            size += 1 + pb::CodedOutputStream.ComputeMessageSize(RightHandPoses);
          }
          if (avatarSystemUpdate_ != null) {
            size += 1 + pb::CodedOutputStream.ComputeMessageSize(AvatarSystemUpdate);
          }
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(PlayerPoseData other) {
          if (other == null) {
            return;
          }
          if (other.SamplesPerSecond != 0) {
            SamplesPerSecond = other.SamplesPerSecond;
          }
          if (other.headPoses_ != null) {
            if (headPoses_ == null) {
              HeadPoses = new global::RecRoom.Protobuf.HolotarBlobData.Types.PoseStreamData();
            }
            HeadPoses.MergeFrom(other.HeadPoses);
          }
          if (other.torsoPoses_ != null) {
            if (torsoPoses_ == null) {
              TorsoPoses = new global::RecRoom.Protobuf.HolotarBlobData.Types.PoseStreamData();
            }
            TorsoPoses.MergeFrom(other.TorsoPoses);
          }
          if (other.leftHandPoses_ != null) {
            if (leftHandPoses_ == null) {
              LeftHandPoses = new global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData();
            }
            LeftHandPoses.MergeFrom(other.LeftHandPoses);
          }
          if (other.rightHandPoses_ != null) {
            if (rightHandPoses_ == null) {
              RightHandPoses = new global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData();
            }
            RightHandPoses.MergeFrom(other.RightHandPoses);
          }
          if (other.avatarSystemUpdate_ != null) {
            if (avatarSystemUpdate_ == null) {
              AvatarSystemUpdate = new global::RecRoom.Protobuf.HolotarBlobData.Types.AvatarSystemStreamData();
            }
            AvatarSystemUpdate.MergeFrom(other.AvatarSystemUpdate);
          }
          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(pb::CodedInputStream input) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          input.ReadRawMessage(this);
        #else
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                break;
              case 8: {
                SamplesPerSecond = input.ReadInt32();
                break;
              }
              case 18: {
                if (headPoses_ == null) {
                  HeadPoses = new global::RecRoom.Protobuf.HolotarBlobData.Types.PoseStreamData();
                }
                input.ReadMessage(HeadPoses);
                break;
              }
              case 26: {
                if (torsoPoses_ == null) {
                  TorsoPoses = new global::RecRoom.Protobuf.HolotarBlobData.Types.PoseStreamData();
                }
                input.ReadMessage(TorsoPoses);
                break;
              }
              case 34: {
                if (leftHandPoses_ == null) {
                  LeftHandPoses = new global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData();
                }
                input.ReadMessage(LeftHandPoses);
                break;
              }
              case 42: {
                if (rightHandPoses_ == null) {
                  RightHandPoses = new global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData();
                }
                input.ReadMessage(RightHandPoses);
                break;
              }
              case 50: {
                if (avatarSystemUpdate_ == null) {
                  AvatarSystemUpdate = new global::RecRoom.Protobuf.HolotarBlobData.Types.AvatarSystemStreamData();
                }
                input.ReadMessage(AvatarSystemUpdate);
                break;
              }
            }
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                break;
              case 8: {
                SamplesPerSecond = input.ReadInt32();
                break;
              }
              case 18: {
                if (headPoses_ == null) {
                  HeadPoses = new global::RecRoom.Protobuf.HolotarBlobData.Types.PoseStreamData();
                }
                input.ReadMessage(HeadPoses);
                break;
              }
              case 26: {
                if (torsoPoses_ == null) {
                  TorsoPoses = new global::RecRoom.Protobuf.HolotarBlobData.Types.PoseStreamData();
                }
                input.ReadMessage(TorsoPoses);
                break;
              }
              case 34: {
                if (leftHandPoses_ == null) {
                  LeftHandPoses = new global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData();
                }
                input.ReadMessage(LeftHandPoses);
                break;
              }
              case 42: {
                if (rightHandPoses_ == null) {
                  RightHandPoses = new global::RecRoom.Protobuf.HolotarBlobData.Types.HandPoseStreamData();
                }
                input.ReadMessage(RightHandPoses);
                break;
              }
              case 50: {
                if (avatarSystemUpdate_ == null) {
                  AvatarSystemUpdate = new global::RecRoom.Protobuf.HolotarBlobData.Types.AvatarSystemStreamData();
                }
                input.ReadMessage(AvatarSystemUpdate);
                break;
              }
            }
          }
        }
        #endif

      }

      [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
      public sealed partial class PoseTransformData : pb::IMessage<PoseTransformData>
      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          , pb::IBufferMessage
      #endif
      {
        private static readonly pb::MessageParser<PoseTransformData> _parser = new pb::MessageParser<PoseTransformData>(() => new PoseTransformData());
        private pb::UnknownFieldSet _unknownFields;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pb::MessageParser<PoseTransformData> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::RecRoom.Protobuf.HolotarBlobData.Descriptor.NestedTypes[4]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        pbr::MessageDescriptor pb::IMessage.Descriptor {
          get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public PoseTransformData() {
          OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public PoseTransformData(PoseTransformData other) : this() {
          localPosition_ = other.localPosition_ != null ? other.localPosition_.Clone() : null;
          localRotation_ = other.localRotation_ != null ? other.localRotation_.Clone() : null;
          timestamp_ = other.timestamp_;
          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public PoseTransformData Clone() {
          return new PoseTransformData(this);
        }

        /// <summary>Field number for the "local_position" field.</summary>
        public const int LocalPositionFieldNumber = 1;
        private global::RecRoom.Protobuf.Core.Vector3Data localPosition_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::RecRoom.Protobuf.Core.Vector3Data LocalPosition {
          get { return localPosition_; }
          set {
            localPosition_ = value;
          }
        }

        /// <summary>Field number for the "local_rotation" field.</summary>
        public const int LocalRotationFieldNumber = 2;
        private global::RecRoom.Protobuf.Core.Vector3Data localRotation_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::RecRoom.Protobuf.Core.Vector3Data LocalRotation {
          get { return localRotation_; }
          set {
            localRotation_ = value;
          }
        }

        /// <summary>Field number for the "timestamp" field.</summary>
        public const int TimestampFieldNumber = 3;
        private float timestamp_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public float Timestamp {
          get { return timestamp_; }
          set {
            timestamp_ = value;
          }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override bool Equals(object other) {
          return Equals(other as PoseTransformData);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool Equals(PoseTransformData other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (!object.Equals(LocalPosition, other.LocalPosition)) return false;
          if (!object.Equals(LocalRotation, other.LocalRotation)) return false;
          if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Timestamp, other.Timestamp)) return false;
          return Equals(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override int GetHashCode() {
          int hash = 1;
          if (localPosition_ != null) hash ^= LocalPosition.GetHashCode();
          if (localRotation_ != null) hash ^= LocalRotation.GetHashCode();
          if (Timestamp != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Timestamp);
          if (_unknownFields != null) {
            hash ^= _unknownFields.GetHashCode();
          }
          return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override string ToString() {
          return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void WriteTo(pb::CodedOutputStream output) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          output.WriteRawMessage(this);
        #else
          if (localPosition_ != null) {
            output.WriteRawTag(10);
            output.WriteMessage(LocalPosition);
          }
          if (localRotation_ != null) {
            output.WriteRawTag(18);
            output.WriteMessage(LocalRotation);
          }
          if (Timestamp != 0F) {
            output.WriteRawTag(29);
            output.WriteFloat(Timestamp);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(output);
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
          if (localPosition_ != null) {
            output.WriteRawTag(10);
            output.WriteMessage(LocalPosition);
          }
          if (localRotation_ != null) {
            output.WriteRawTag(18);
            output.WriteMessage(LocalRotation);
          }
          if (Timestamp != 0F) {
            output.WriteRawTag(29);
            output.WriteFloat(Timestamp);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(ref output);
          }
        }
        #endif

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public int CalculateSize() {
          int size = 0;
          if (localPosition_ != null) {
            size += 1 + pb::CodedOutputStream.ComputeMessageSize(LocalPosition);
          }
          if (localRotation_ != null) {
            size += 1 + pb::CodedOutputStream.ComputeMessageSize(LocalRotation);
          }
          if (Timestamp != 0F) {
            size += 1 + 4;
          }
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(PoseTransformData other) {
          if (other == null) {
            return;
          }
          if (other.localPosition_ != null) {
            if (localPosition_ == null) {
              LocalPosition = new global::RecRoom.Protobuf.Core.Vector3Data();
            }
            LocalPosition.MergeFrom(other.LocalPosition);
          }
          if (other.localRotation_ != null) {
            if (localRotation_ == null) {
              LocalRotation = new global::RecRoom.Protobuf.Core.Vector3Data();
            }
            LocalRotation.MergeFrom(other.LocalRotation);
          }
          if (other.Timestamp != 0F) {
            Timestamp = other.Timestamp;
          }
          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(pb::CodedInputStream input) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          input.ReadRawMessage(this);
        #else
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                break;
              case 10: {
                if (localPosition_ == null) {
                  LocalPosition = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                input.ReadMessage(LocalPosition);
                break;
              }
              case 18: {
                if (localRotation_ == null) {
                  LocalRotation = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                input.ReadMessage(LocalRotation);
                break;
              }
              case 29: {
                Timestamp = input.ReadFloat();
                break;
              }
            }
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                break;
              case 10: {
                if (localPosition_ == null) {
                  LocalPosition = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                input.ReadMessage(LocalPosition);
                break;
              }
              case 18: {
                if (localRotation_ == null) {
                  LocalRotation = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                input.ReadMessage(LocalRotation);
                break;
              }
              case 29: {
                Timestamp = input.ReadFloat();
                break;
              }
            }
          }
        }
        #endif

      }

    }
    #endregion

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class ColorStateData : pb::IMessage<ColorStateData>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ColorStateData> _parser = new pb::MessageParser<ColorStateData>(() => new ColorStateData());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ColorStateData> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::RecRoom.Protobuf.HolotarDataReflection.Descriptor.MessageTypes[1]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ColorStateData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ColorStateData(ColorStateData other) : this() {
      timestamp_ = other.timestamp_;
      color_ = other.color_ != null ? other.color_.Clone() : null;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ColorStateData Clone() {
      return new ColorStateData(this);
    }

    /// <summary>Field number for the "timestamp" field.</summary>
    public const int TimestampFieldNumber = 1;
    private float timestamp_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float Timestamp {
      get { return timestamp_; }
      set {
        timestamp_ = value;
      }
    }

    /// <summary>Field number for the "color" field.</summary>
    public const int ColorFieldNumber = 2;
    private global::RecRoom.Protobuf.Core.ColorData color_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.Core.ColorData Color {
      get { return color_; }
      set {
        color_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ColorStateData);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ColorStateData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Timestamp, other.Timestamp)) return false;
      if (!object.Equals(Color, other.Color)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Timestamp != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Timestamp);
      if (color_ != null) hash ^= Color.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Timestamp != 0F) {
        output.WriteRawTag(13);
        output.WriteFloat(Timestamp);
      }
      if (color_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(Color);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Timestamp != 0F) {
        output.WriteRawTag(13);
        output.WriteFloat(Timestamp);
      }
      if (color_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(Color);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Timestamp != 0F) {
        size += 1 + 4;
      }
      if (color_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Color);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ColorStateData other) {
      if (other == null) {
        return;
      }
      if (other.Timestamp != 0F) {
        Timestamp = other.Timestamp;
      }
      if (other.color_ != null) {
        if (color_ == null) {
          Color = new global::RecRoom.Protobuf.Core.ColorData();
        }
        Color.MergeFrom(other.Color);
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 13: {
            Timestamp = input.ReadFloat();
            break;
          }
          case 18: {
            if (color_ == null) {
              Color = new global::RecRoom.Protobuf.Core.ColorData();
            }
            input.ReadMessage(Color);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 13: {
            Timestamp = input.ReadFloat();
            break;
          }
          case 18: {
            if (color_ == null) {
              Color = new global::RecRoom.Protobuf.Core.ColorData();
            }
            input.ReadMessage(Color);
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class HolotarPersistenceData : pb::IMessage<HolotarPersistenceData>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<HolotarPersistenceData> _parser = new pb::MessageParser<HolotarPersistenceData>(() => new HolotarPersistenceData());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<HolotarPersistenceData> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::RecRoom.Protobuf.HolotarDataReflection.Descriptor.MessageTypes[2]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public HolotarPersistenceData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public HolotarPersistenceData(HolotarPersistenceData other) : this() {
      blobName_ = other.blobName_;
      billboard_ = other.billboard_;
      hideEffects_ = other.hideEffects_;
      audioVolume_ = other.audioVolume_;
      isLooping_ = other.isLooping_;
      uses2DAudio_ = other.uses2DAudio_;
      playbackPuppetScale_ = other.playbackPuppetScale_;
      playbackPuppetVerticalOffset_ = other.playbackPuppetVerticalOffset_;
      mirroredWhenRecording_ = other.mirroredWhenRecording_;
      audioChannel_ = other.audioChannel_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public HolotarPersistenceData Clone() {
      return new HolotarPersistenceData(this);
    }

    /// <summary>Field number for the "blob_name" field.</summary>
    public const int BlobNameFieldNumber = 1;
    private string blobName_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string BlobName {
      get { return blobName_; }
      set {
        blobName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "billboard" field.</summary>
    public const int BillboardFieldNumber = 2;
    private bool billboard_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Billboard {
      get { return billboard_; }
      set {
        billboard_ = value;
      }
    }

    /// <summary>Field number for the "hide_effects" field.</summary>
    public const int HideEffectsFieldNumber = 3;
    private bool hideEffects_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HideEffects {
      get { return hideEffects_; }
      set {
        hideEffects_ = value;
      }
    }

    /// <summary>Field number for the "audio_volume" field.</summary>
    public const int AudioVolumeFieldNumber = 4;
    private float audioVolume_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float AudioVolume {
      get { return audioVolume_; }
      set {
        audioVolume_ = value;
      }
    }

    /// <summary>Field number for the "is_looping" field.</summary>
    public const int IsLoopingFieldNumber = 5;
    private bool isLooping_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool IsLooping {
      get { return isLooping_; }
      set {
        isLooping_ = value;
      }
    }

    /// <summary>Field number for the "uses_2D_audio" field.</summary>
    public const int Uses2DAudioFieldNumber = 6;
    private bool uses2DAudio_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Uses2DAudio {
      get { return uses2DAudio_; }
      set {
        uses2DAudio_ = value;
      }
    }

    /// <summary>Field number for the "playback_puppet_scale" field.</summary>
    public const int PlaybackPuppetScaleFieldNumber = 7;
    private float playbackPuppetScale_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float PlaybackPuppetScale {
      get { return playbackPuppetScale_; }
      set {
        playbackPuppetScale_ = value;
      }
    }

    /// <summary>Field number for the "playback_puppet_vertical_offset" field.</summary>
    public const int PlaybackPuppetVerticalOffsetFieldNumber = 8;
    private float playbackPuppetVerticalOffset_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float PlaybackPuppetVerticalOffset {
      get { return playbackPuppetVerticalOffset_; }
      set {
        playbackPuppetVerticalOffset_ = value;
      }
    }

    /// <summary>Field number for the "mirrored_when_recording" field.</summary>
    public const int MirroredWhenRecordingFieldNumber = 9;
    private bool mirroredWhenRecording_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool MirroredWhenRecording {
      get { return mirroredWhenRecording_; }
      set {
        mirroredWhenRecording_ = value;
      }
    }

    /// <summary>Field number for the "audio_channel" field.</summary>
    public const int AudioChannelFieldNumber = 10;
    private int audioChannel_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int AudioChannel {
      get { return audioChannel_; }
      set {
        audioChannel_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as HolotarPersistenceData);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(HolotarPersistenceData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (BlobName != other.BlobName) return false;
      if (Billboard != other.Billboard) return false;
      if (HideEffects != other.HideEffects) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(AudioVolume, other.AudioVolume)) return false;
      if (IsLooping != other.IsLooping) return false;
      if (Uses2DAudio != other.Uses2DAudio) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(PlaybackPuppetScale, other.PlaybackPuppetScale)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(PlaybackPuppetVerticalOffset, other.PlaybackPuppetVerticalOffset)) return false;
      if (MirroredWhenRecording != other.MirroredWhenRecording) return false;
      if (AudioChannel != other.AudioChannel) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (BlobName.Length != 0) hash ^= BlobName.GetHashCode();
      if (Billboard != false) hash ^= Billboard.GetHashCode();
      if (HideEffects != false) hash ^= HideEffects.GetHashCode();
      if (AudioVolume != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(AudioVolume);
      if (IsLooping != false) hash ^= IsLooping.GetHashCode();
      if (Uses2DAudio != false) hash ^= Uses2DAudio.GetHashCode();
      if (PlaybackPuppetScale != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(PlaybackPuppetScale);
      if (PlaybackPuppetVerticalOffset != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(PlaybackPuppetVerticalOffset);
      if (MirroredWhenRecording != false) hash ^= MirroredWhenRecording.GetHashCode();
      if (AudioChannel != 0) hash ^= AudioChannel.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (BlobName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(BlobName);
      }
      if (Billboard != false) {
        output.WriteRawTag(16);
        output.WriteBool(Billboard);
      }
      if (HideEffects != false) {
        output.WriteRawTag(24);
        output.WriteBool(HideEffects);
      }
      if (AudioVolume != 0F) {
        output.WriteRawTag(37);
        output.WriteFloat(AudioVolume);
      }
      if (IsLooping != false) {
        output.WriteRawTag(40);
        output.WriteBool(IsLooping);
      }
      if (Uses2DAudio != false) {
        output.WriteRawTag(48);
        output.WriteBool(Uses2DAudio);
      }
      if (PlaybackPuppetScale != 0F) {
        output.WriteRawTag(61);
        output.WriteFloat(PlaybackPuppetScale);
      }
      if (PlaybackPuppetVerticalOffset != 0F) {
        output.WriteRawTag(69);
        output.WriteFloat(PlaybackPuppetVerticalOffset);
      }
      if (MirroredWhenRecording != false) {
        output.WriteRawTag(72);
        output.WriteBool(MirroredWhenRecording);
      }
      if (AudioChannel != 0) {
        output.WriteRawTag(80);
        output.WriteInt32(AudioChannel);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (BlobName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(BlobName);
      }
      if (Billboard != false) {
        output.WriteRawTag(16);
        output.WriteBool(Billboard);
      }
      if (HideEffects != false) {
        output.WriteRawTag(24);
        output.WriteBool(HideEffects);
      }
      if (AudioVolume != 0F) {
        output.WriteRawTag(37);
        output.WriteFloat(AudioVolume);
      }
      if (IsLooping != false) {
        output.WriteRawTag(40);
        output.WriteBool(IsLooping);
      }
      if (Uses2DAudio != false) {
        output.WriteRawTag(48);
        output.WriteBool(Uses2DAudio);
      }
      if (PlaybackPuppetScale != 0F) {
        output.WriteRawTag(61);
        output.WriteFloat(PlaybackPuppetScale);
      }
      if (PlaybackPuppetVerticalOffset != 0F) {
        output.WriteRawTag(69);
        output.WriteFloat(PlaybackPuppetVerticalOffset);
      }
      if (MirroredWhenRecording != false) {
        output.WriteRawTag(72);
        output.WriteBool(MirroredWhenRecording);
      }
      if (AudioChannel != 0) {
        output.WriteRawTag(80);
        output.WriteInt32(AudioChannel);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (BlobName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(BlobName);
      }
      if (Billboard != false) {
        size += 1 + 1;
      }
      if (HideEffects != false) {
        size += 1 + 1;
      }
      if (AudioVolume != 0F) {
        size += 1 + 4;
      }
      if (IsLooping != false) {
        size += 1 + 1;
      }
      if (Uses2DAudio != false) {
        size += 1 + 1;
      }
      if (PlaybackPuppetScale != 0F) {
        size += 1 + 4;
      }
      if (PlaybackPuppetVerticalOffset != 0F) {
        size += 1 + 4;
      }
      if (MirroredWhenRecording != false) {
        size += 1 + 1;
      }
      if (AudioChannel != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(AudioChannel);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(HolotarPersistenceData other) {
      if (other == null) {
        return;
      }
      if (other.BlobName.Length != 0) {
        BlobName = other.BlobName;
      }
      if (other.Billboard != false) {
        Billboard = other.Billboard;
      }
      if (other.HideEffects != false) {
        HideEffects = other.HideEffects;
      }
      if (other.AudioVolume != 0F) {
        AudioVolume = other.AudioVolume;
      }
      if (other.IsLooping != false) {
        IsLooping = other.IsLooping;
      }
      if (other.Uses2DAudio != false) {
        Uses2DAudio = other.Uses2DAudio;
      }
      if (other.PlaybackPuppetScale != 0F) {
        PlaybackPuppetScale = other.PlaybackPuppetScale;
      }
      if (other.PlaybackPuppetVerticalOffset != 0F) {
        PlaybackPuppetVerticalOffset = other.PlaybackPuppetVerticalOffset;
      }
      if (other.MirroredWhenRecording != false) {
        MirroredWhenRecording = other.MirroredWhenRecording;
      }
      if (other.AudioChannel != 0) {
        AudioChannel = other.AudioChannel;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            BlobName = input.ReadString();
            break;
          }
          case 16: {
            Billboard = input.ReadBool();
            break;
          }
          case 24: {
            HideEffects = input.ReadBool();
            break;
          }
          case 37: {
            AudioVolume = input.ReadFloat();
            break;
          }
          case 40: {
            IsLooping = input.ReadBool();
            break;
          }
          case 48: {
            Uses2DAudio = input.ReadBool();
            break;
          }
          case 61: {
            PlaybackPuppetScale = input.ReadFloat();
            break;
          }
          case 69: {
            PlaybackPuppetVerticalOffset = input.ReadFloat();
            break;
          }
          case 72: {
            MirroredWhenRecording = input.ReadBool();
            break;
          }
          case 80: {
            AudioChannel = input.ReadInt32();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            BlobName = input.ReadString();
            break;
          }
          case 16: {
            Billboard = input.ReadBool();
            break;
          }
          case 24: {
            HideEffects = input.ReadBool();
            break;
          }
          case 37: {
            AudioVolume = input.ReadFloat();
            break;
          }
          case 40: {
            IsLooping = input.ReadBool();
            break;
          }
          case 48: {
            Uses2DAudio = input.ReadBool();
            break;
          }
          case 61: {
            PlaybackPuppetScale = input.ReadFloat();
            break;
          }
          case 69: {
            PlaybackPuppetVerticalOffset = input.ReadFloat();
            break;
          }
          case 72: {
            MirroredWhenRecording = input.ReadBool();
            break;
          }
          case 80: {
            AudioChannel = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  #endregion

}

#endregion Designer generated code
