|  | @@ -26,6 +26,8 @@ namespace UnitTest.Issues.TestProtos {
 | 
	
		
			
				|  |  |      internal static pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.AB, global::UnitTest.Issues.TestProtos.AB.Builder> internal__static_unittest_issues_AB__FieldAccessorTable;
 | 
	
		
			
				|  |  |      internal static pbd::MessageDescriptor internal__static_unittest_issues_NumberField__Descriptor;
 | 
	
		
			
				|  |  |      internal static pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.NumberField, global::UnitTest.Issues.TestProtos.NumberField.Builder> internal__static_unittest_issues_NumberField__FieldAccessorTable;
 | 
	
		
			
				|  |  | +    internal static pbd::MessageDescriptor internal__static_unittest_issues_ItemField__Descriptor;
 | 
	
		
			
				|  |  | +    internal static pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.ItemField, global::UnitTest.Issues.TestProtos.ItemField.Builder> internal__static_unittest_issues_ItemField__FieldAccessorTable;
 | 
	
		
			
				|  |  |      #endregion
 | 
	
		
			
				|  |  |      #region Descriptor
 | 
	
		
			
				|  |  |      public static pbd::FileDescriptor Descriptor {
 | 
	
	
		
			
				|  | @@ -38,9 +40,9 @@ namespace UnitTest.Issues.TestProtos {
 | 
	
		
			
				|  |  |            "ChxleHRlc3QvdW5pdHRlc3RfaXNzdWVzLnByb3RvEg91bml0dGVzdF9pc3N1" + 
 | 
	
		
			
				|  |  |            "ZXMaJGdvb2dsZS9wcm90b2J1Zi9jc2hhcnBfb3B0aW9ucy5wcm90byIPCgFB" + 
 | 
	
		
			
				|  |  |            "EgoKAl9BGAEgASgFIg8KAUISCgoCQl8YASABKAUiEQoCQUISCwoDYV9iGAEg" + 
 | 
	
		
			
				|  |  | -          "ASgFIhoKC051bWJlckZpZWxkEgsKA18wMRgBIAEoBUJASAHCPjsKGlVuaXRU" + 
 | 
	
		
			
				|  |  | -          "ZXN0Lklzc3Vlcy5UZXN0UHJvdG9zEh1Vbml0VGVzdEV4dHJhc0lzc3Vlc1By" + 
 | 
	
		
			
				|  |  | -          "b3RvRmlsZQ==");
 | 
	
		
			
				|  |  | +          "ASgFIhoKC051bWJlckZpZWxkEgsKA18wMRgBIAEoBSIZCglJdGVtRmllbGQS" + 
 | 
	
		
			
				|  |  | +          "DAoEaXRlbRgBIAEoBUJASAHCPjsKGlVuaXRUZXN0Lklzc3Vlcy5UZXN0UHJv" + 
 | 
	
		
			
				|  |  | +          "dG9zEh1Vbml0VGVzdEV4dHJhc0lzc3Vlc1Byb3RvRmlsZQ==");
 | 
	
		
			
				|  |  |        pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
 | 
	
		
			
				|  |  |          descriptor = root;
 | 
	
		
			
				|  |  |          internal__static_unittest_issues_A__Descriptor = Descriptor.MessageTypes[0];
 | 
	
	
		
			
				|  | @@ -59,6 +61,10 @@ namespace UnitTest.Issues.TestProtos {
 | 
	
		
			
				|  |  |          internal__static_unittest_issues_NumberField__FieldAccessorTable = 
 | 
	
		
			
				|  |  |              new pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.NumberField, global::UnitTest.Issues.TestProtos.NumberField.Builder>(internal__static_unittest_issues_NumberField__Descriptor,
 | 
	
		
			
				|  |  |                  new string[] { "_01", });
 | 
	
		
			
				|  |  | +        internal__static_unittest_issues_ItemField__Descriptor = Descriptor.MessageTypes[4];
 | 
	
		
			
				|  |  | +        internal__static_unittest_issues_ItemField__FieldAccessorTable = 
 | 
	
		
			
				|  |  | +            new pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.ItemField, global::UnitTest.Issues.TestProtos.ItemField.Builder>(internal__static_unittest_issues_ItemField__Descriptor,
 | 
	
		
			
				|  |  | +                new string[] { "Item", });
 | 
	
		
			
				|  |  |          pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
 | 
	
		
			
				|  |  |          RegisterAllExtensions(registry);
 | 
	
		
			
				|  |  |          global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry);
 | 
	
	
		
			
				|  | @@ -1033,6 +1039,245 @@ namespace UnitTest.Issues.TestProtos {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  | +  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 | 
	
		
			
				|  |  | +  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
 | 
	
		
			
				|  |  | +  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
 | 
	
		
			
				|  |  | +  public sealed partial class ItemField : pb::GeneratedMessage<ItemField, ItemField.Builder> {
 | 
	
		
			
				|  |  | +    private static readonly ItemField defaultInstance = new Builder().BuildPartial();
 | 
	
		
			
				|  |  | +    private static readonly string[] _itemFieldFieldNames = new string[] { "item" };
 | 
	
		
			
				|  |  | +    private static readonly uint[] _itemFieldFieldTags = new uint[] { 8 };
 | 
	
		
			
				|  |  | +    public static ItemField DefaultInstance {
 | 
	
		
			
				|  |  | +      get { return defaultInstance; }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    public override ItemField DefaultInstanceForType {
 | 
	
		
			
				|  |  | +      get { return defaultInstance; }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    protected override ItemField ThisMessage {
 | 
	
		
			
				|  |  | +      get { return this; }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    public static pbd::MessageDescriptor Descriptor {
 | 
	
		
			
				|  |  | +      get { return global::UnitTest.Issues.TestProtos.UnitTestExtrasIssuesProtoFile.internal__static_unittest_issues_ItemField__Descriptor; }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    protected override pb::FieldAccess.FieldAccessorTable<ItemField, ItemField.Builder> InternalFieldAccessors {
 | 
	
		
			
				|  |  | +      get { return global::UnitTest.Issues.TestProtos.UnitTestExtrasIssuesProtoFile.internal__static_unittest_issues_ItemField__FieldAccessorTable; }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    public const int ItemFieldNumber = 1;
 | 
	
		
			
				|  |  | +    private bool hasItem;
 | 
	
		
			
				|  |  | +    private int item_;
 | 
	
		
			
				|  |  | +    public bool HasItem {
 | 
	
		
			
				|  |  | +      get { return hasItem; }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    public int Item {
 | 
	
		
			
				|  |  | +      get { return item_; }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    public override bool IsInitialized {
 | 
	
		
			
				|  |  | +      get {
 | 
	
		
			
				|  |  | +        return true;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    public override void WriteTo(pb::ICodedOutputStream output) {
 | 
	
		
			
				|  |  | +      int size = SerializedSize;
 | 
	
		
			
				|  |  | +      string[] field_names = _itemFieldFieldNames;
 | 
	
		
			
				|  |  | +      if (hasItem) {
 | 
	
		
			
				|  |  | +        output.WriteInt32(1, field_names[0], Item);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      UnknownFields.WriteTo(output);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    private int memoizedSerializedSize = -1;
 | 
	
		
			
				|  |  | +    public override int SerializedSize {
 | 
	
		
			
				|  |  | +      get {
 | 
	
		
			
				|  |  | +        int size = memoizedSerializedSize;
 | 
	
		
			
				|  |  | +        if (size != -1) return size;
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        size = 0;
 | 
	
		
			
				|  |  | +        if (hasItem) {
 | 
	
		
			
				|  |  | +          size += pb::CodedOutputStream.ComputeInt32Size(1, Item);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        size += UnknownFields.SerializedSize;
 | 
	
		
			
				|  |  | +        memoizedSerializedSize = size;
 | 
	
		
			
				|  |  | +        return size;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    public static ItemField ParseFrom(pb::ByteString data) {
 | 
	
		
			
				|  |  | +      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    public static ItemField ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
 | 
	
		
			
				|  |  | +      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    public static ItemField ParseFrom(byte[] data) {
 | 
	
		
			
				|  |  | +      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    public static ItemField ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
 | 
	
		
			
				|  |  | +      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    public static ItemField ParseFrom(global::System.IO.Stream input) {
 | 
	
		
			
				|  |  | +      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    public static ItemField ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
 | 
	
		
			
				|  |  | +      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    public static ItemField ParseDelimitedFrom(global::System.IO.Stream input) {
 | 
	
		
			
				|  |  | +      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    public static ItemField ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
 | 
	
		
			
				|  |  | +      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    public static ItemField ParseFrom(pb::ICodedInputStream input) {
 | 
	
		
			
				|  |  | +      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    public static ItemField ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
 | 
	
		
			
				|  |  | +      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    public static Builder CreateBuilder() { return new Builder(); }
 | 
	
		
			
				|  |  | +    public override Builder ToBuilder() { return CreateBuilder(this); }
 | 
	
		
			
				|  |  | +    public override Builder CreateBuilderForType() { return new Builder(); }
 | 
	
		
			
				|  |  | +    public static Builder CreateBuilder(ItemField prototype) {
 | 
	
		
			
				|  |  | +      return (Builder) new Builder().MergeFrom(prototype);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 | 
	
		
			
				|  |  | +    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
 | 
	
		
			
				|  |  | +    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
 | 
	
		
			
				|  |  | +    public sealed partial class Builder : pb::GeneratedBuilder<ItemField, Builder> {
 | 
	
		
			
				|  |  | +      protected override Builder ThisBuilder {
 | 
	
		
			
				|  |  | +        get { return this; }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      public Builder() {}
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      ItemField result = new ItemField();
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      protected override ItemField MessageBeingBuilt {
 | 
	
		
			
				|  |  | +        get { return result; }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      public override Builder Clear() {
 | 
	
		
			
				|  |  | +        result = new ItemField();
 | 
	
		
			
				|  |  | +        return this;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      public override Builder Clone() {
 | 
	
		
			
				|  |  | +        return new Builder().MergeFrom(result);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      public override pbd::MessageDescriptor DescriptorForType {
 | 
	
		
			
				|  |  | +        get { return global::UnitTest.Issues.TestProtos.ItemField.Descriptor; }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      public override ItemField DefaultInstanceForType {
 | 
	
		
			
				|  |  | +        get { return global::UnitTest.Issues.TestProtos.ItemField.DefaultInstance; }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      public override ItemField BuildPartial() {
 | 
	
		
			
				|  |  | +        if (result == null) {
 | 
	
		
			
				|  |  | +          throw new global::System.InvalidOperationException("build() has already been called on this Builder");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        ItemField returnMe = result;
 | 
	
		
			
				|  |  | +        result = null;
 | 
	
		
			
				|  |  | +        return returnMe;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      public override Builder MergeFrom(pb::IMessage other) {
 | 
	
		
			
				|  |  | +        if (other is ItemField) {
 | 
	
		
			
				|  |  | +          return MergeFrom((ItemField) other);
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          base.MergeFrom(other);
 | 
	
		
			
				|  |  | +          return this;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      public override Builder MergeFrom(ItemField other) {
 | 
	
		
			
				|  |  | +        if (other == global::UnitTest.Issues.TestProtos.ItemField.DefaultInstance) return this;
 | 
	
		
			
				|  |  | +        if (other.HasItem) {
 | 
	
		
			
				|  |  | +          Item = other.Item;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        this.MergeUnknownFields(other.UnknownFields);
 | 
	
		
			
				|  |  | +        return this;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      public override Builder MergeFrom(pb::ICodedInputStream input) {
 | 
	
		
			
				|  |  | +        return MergeFrom(input, pb::ExtensionRegistry.Empty);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
 | 
	
		
			
				|  |  | +        pb::UnknownFieldSet.Builder unknownFields = null;
 | 
	
		
			
				|  |  | +        uint tag;
 | 
	
		
			
				|  |  | +        string field_name;
 | 
	
		
			
				|  |  | +        while (input.ReadTag(out tag, out field_name)) {
 | 
	
		
			
				|  |  | +          if(tag == 0 && field_name != null) {
 | 
	
		
			
				|  |  | +            int field_ordinal = global::System.Array.BinarySearch(_itemFieldFieldNames, field_name, global::System.StringComparer.Ordinal);
 | 
	
		
			
				|  |  | +            if(field_ordinal >= 0)
 | 
	
		
			
				|  |  | +              tag = _itemFieldFieldTags[field_ordinal];
 | 
	
		
			
				|  |  | +            else {
 | 
	
		
			
				|  |  | +              if (unknownFields == null) {
 | 
	
		
			
				|  |  | +                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +              ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
 | 
	
		
			
				|  |  | +              continue;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          switch (tag) {
 | 
	
		
			
				|  |  | +            case 0: {
 | 
	
		
			
				|  |  | +              throw pb::InvalidProtocolBufferException.InvalidTag();
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            default: {
 | 
	
		
			
				|  |  | +              if (pb::WireFormat.IsEndGroupTag(tag)) {
 | 
	
		
			
				|  |  | +                if (unknownFields != null) {
 | 
	
		
			
				|  |  | +                  this.UnknownFields = unknownFields.Build();
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                return this;
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +              if (unknownFields == null) {
 | 
	
		
			
				|  |  | +                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +              ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
 | 
	
		
			
				|  |  | +              break;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            case 8: {
 | 
	
		
			
				|  |  | +              result.hasItem = input.ReadInt32(ref result.item_);
 | 
	
		
			
				|  |  | +              break;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        if (unknownFields != null) {
 | 
	
		
			
				|  |  | +          this.UnknownFields = unknownFields.Build();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return this;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      public bool HasItem {
 | 
	
		
			
				|  |  | +        get { return result.hasItem; }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      public int Item {
 | 
	
		
			
				|  |  | +        get { return result.Item; }
 | 
	
		
			
				|  |  | +        set { SetItem(value); }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      public Builder SetItem(int value) {
 | 
	
		
			
				|  |  | +        result.hasItem = true;
 | 
	
		
			
				|  |  | +        result.item_ = value;
 | 
	
		
			
				|  |  | +        return this;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      public Builder ClearItem() {
 | 
	
		
			
				|  |  | +        result.hasItem = false;
 | 
	
		
			
				|  |  | +        result.item_ = 0;
 | 
	
		
			
				|  |  | +        return this;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    static ItemField() {
 | 
	
		
			
				|  |  | +      object.ReferenceEquals(global::UnitTest.Issues.TestProtos.UnitTestExtrasIssuesProtoFile.Descriptor, null);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  |    #endregion
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  |  }
 |