// Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

syntax = "proto2";
package a0.a1.a349;
message A433 {
  oneof a105 {
    string a192 = 1;
    int32 a355 = 2;
    bool a356 = 3;
    double a191 = 4;
  }
};
message A434 {
  optional string a357 = 1;
  optional A435 a358 = 2;
}
message A435 {
  oneof a359 {
    bool a360 = 1;
    A436 a361 = 2;
    A437 a362 = 3;
  }
  message A436 {
    optional bool a361 = 1;
  }
  message A437 {
    optional A433 a105 = 1;
  }
}
enum A438 {
  A439 = 0;
  A440 = 1;
  A441 = 2;
  A442 = 3;
  A443 = 4;
  A444 = 5;
  A445 = 6;
  A446 = 7;
  A447 = 8;
  A448 = 9;
  A449 = 10;
  A450 = 13;
  A451 = 14;
  A452 = 15;
  A453 = 16;
  A454 = 17;
};
message A455 {
  optional A438 a363 = 1;
  repeated A456 a364 = 2;
};
message A456 {
  oneof a365 {
    A455 a366 = 1;
    A434 a367 = 2;
    A433 a368 = 3;
  }
};
message A457 {
  optional string a98 = 1;
};
message A431 {
  enum A458 {
    A459 = 0;
    A460 = 1;
    A461 = 2;
    A462 = 3;
    A463 = 4;
    A464 = 5;
  }
  optional A458 a369 = 1;
  optional A456 a370 = 2;
  optional int32 a371 = 3;
  optional int32 a372 = 4;
  optional A434 a373 = 5;
  optional A457 a374 = 16;
};
