syntax = "proto2";

package a;

import "1.proto";

message One2 {
  optional int32 one = 1;
  optional One two = 2;
  repeated int32 three = 3;
  repeated One four = 4;
}

message Two2 {
  optional int32 one = 1;
  optional One two = 2;
  repeated int32 three = 3;
  repeated One four = 4;
}

message Three2 {
  message Four2 {
    message Five2 {
      optional int32 one = 1;
      optional One two = 2;
      repeated int32 three = 3;
      repeated One four = 4;
    }
    message Six2 {
      optional int32 one = 1;
      optional One two = 2;
      repeated int32 three = 3;
      repeated One four = 4;
    }
  }
  message Seven2 {
    optional int32 one = 1;
    optional One two = 2;
    repeated int32 three = 3;
    repeated One four = 4;
  }
  message Eight2 {
    optional int32 one = 1;
    optional One two = 2;
    repeated int32 three = 3;
    repeated One four = 4;
  }
}

message Nine2 {
  oneof foo {
    int32 one = 1;
    One two = 2;
  }
}

message Ten2 {
  optional group Foo = 1 {
  }

  extensions 100 to 1000;

  extend Ten2 {
    optional string ten2_str = 100;
    optional Ten2 ten2_msg = 101;
    optional uint32 ten2_uint32 = 102;
  }
}
