syntax = "proto2";

package a;

message Two {
  extensions 100 to 200;
  extensions 300;
  optional int32 one = 1;
  optional int32 two = 2;
  optional int32 three = 3;
}

message Three {
  message Four {
    message Five {
      extensions 100 to 200;
      extensions 300;
      optional int32 one = 1;
      optional int32 two = 2;
      optional int32 three = 3;
    }
    message Six {
      extensions 4 to 5, 100 to 200;
      extensions 300, 301, 1000 to max;
      optional int32 one = 1;
      optional int32 two = 2;
      optional int32 three = 3;
    }
  }
  message Seven {
    extensions 100 to 200;
    extensions 300;
    optional int32 one = 1;
    optional int32 two = 2;
    optional int32 three = 3;
  }
  message Eight {
    extensions 4 to 5, 100 to 200;
    extensions 300, 301, 1000 to max;
    optional int32 one = 1;
    optional int32 two = 2;
    optional int32 three = 3;
  }
  optional int32 one = 1;
  optional int32 two = 2;
  optional int32 three = 3;
}

message Ten {
  extensions 1 to 1000;
  extensions 2000 to 5000, 10000 to 50000;
  extensions 100000 to max;
}
