// 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 a10.a68.a211;
message A192 {
  message A193 {
    optional string a52 = 1;
    optional int32 a97 = 2;
    optional string a212 = 3;
    optional string a213 = 4;
    optional bool a214 = 5 [default = true];
    optional bool a215 = 6;
    optional uint32 a216 = 7 [default = 2];
  }
  repeated A193 a86 = 2;
  message A194 {
    optional string a52 = 1;
    optional string a213 = 2;
    optional bool a214 = 3 [default = true];
    optional uint32 a216 = 4 [default = 2];
  }
  repeated A194 a217 = 3;
  message A195 {
    optional string a52 = 1;
    optional string a213 = 2;
    optional bool a214 = 3 [default = true];
    optional uint32 a216 = 4 [default = 2];
  }
  repeated A195 a218 = 4;
}
