|
@@ -2919,6 +2919,312 @@ impl ::protobuf::reflect::ProtobufValue for GridBlockOrder {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+#[derive(PartialEq,Clone,Default)]
|
|
|
+pub struct GridBlockOrderChangeset {
|
|
|
+ // message fields
|
|
|
+ pub block_id: ::std::string::String,
|
|
|
+ pub inserted_rows: ::protobuf::RepeatedField<RowOrder>,
|
|
|
+ pub deleted_rows: ::protobuf::RepeatedField<RowOrder>,
|
|
|
+ pub updated_rows: ::protobuf::RepeatedField<RowOrder>,
|
|
|
+ // special fields
|
|
|
+ pub unknown_fields: ::protobuf::UnknownFields,
|
|
|
+ pub cached_size: ::protobuf::CachedSize,
|
|
|
+}
|
|
|
+
|
|
|
+impl<'a> ::std::default::Default for &'a GridBlockOrderChangeset {
|
|
|
+ fn default() -> &'a GridBlockOrderChangeset {
|
|
|
+ <GridBlockOrderChangeset as ::protobuf::Message>::default_instance()
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+impl GridBlockOrderChangeset {
|
|
|
+ pub fn new() -> GridBlockOrderChangeset {
|
|
|
+ ::std::default::Default::default()
|
|
|
+ }
|
|
|
+
|
|
|
+ // string block_id = 1;
|
|
|
+
|
|
|
+
|
|
|
+ pub fn get_block_id(&self) -> &str {
|
|
|
+ &self.block_id
|
|
|
+ }
|
|
|
+ pub fn clear_block_id(&mut self) {
|
|
|
+ self.block_id.clear();
|
|
|
+ }
|
|
|
+
|
|
|
+ // Param is passed by value, moved
|
|
|
+ pub fn set_block_id(&mut self, v: ::std::string::String) {
|
|
|
+ self.block_id = v;
|
|
|
+ }
|
|
|
+
|
|
|
+ // Mutable pointer to the field.
|
|
|
+ // If field is not initialized, it is initialized with default value first.
|
|
|
+ pub fn mut_block_id(&mut self) -> &mut ::std::string::String {
|
|
|
+ &mut self.block_id
|
|
|
+ }
|
|
|
+
|
|
|
+ // Take field
|
|
|
+ pub fn take_block_id(&mut self) -> ::std::string::String {
|
|
|
+ ::std::mem::replace(&mut self.block_id, ::std::string::String::new())
|
|
|
+ }
|
|
|
+
|
|
|
+ // repeated .RowOrder inserted_rows = 2;
|
|
|
+
|
|
|
+
|
|
|
+ pub fn get_inserted_rows(&self) -> &[RowOrder] {
|
|
|
+ &self.inserted_rows
|
|
|
+ }
|
|
|
+ pub fn clear_inserted_rows(&mut self) {
|
|
|
+ self.inserted_rows.clear();
|
|
|
+ }
|
|
|
+
|
|
|
+ // Param is passed by value, moved
|
|
|
+ pub fn set_inserted_rows(&mut self, v: ::protobuf::RepeatedField<RowOrder>) {
|
|
|
+ self.inserted_rows = v;
|
|
|
+ }
|
|
|
+
|
|
|
+ // Mutable pointer to the field.
|
|
|
+ pub fn mut_inserted_rows(&mut self) -> &mut ::protobuf::RepeatedField<RowOrder> {
|
|
|
+ &mut self.inserted_rows
|
|
|
+ }
|
|
|
+
|
|
|
+ // Take field
|
|
|
+ pub fn take_inserted_rows(&mut self) -> ::protobuf::RepeatedField<RowOrder> {
|
|
|
+ ::std::mem::replace(&mut self.inserted_rows, ::protobuf::RepeatedField::new())
|
|
|
+ }
|
|
|
+
|
|
|
+ // repeated .RowOrder deleted_rows = 3;
|
|
|
+
|
|
|
+
|
|
|
+ pub fn get_deleted_rows(&self) -> &[RowOrder] {
|
|
|
+ &self.deleted_rows
|
|
|
+ }
|
|
|
+ pub fn clear_deleted_rows(&mut self) {
|
|
|
+ self.deleted_rows.clear();
|
|
|
+ }
|
|
|
+
|
|
|
+ // Param is passed by value, moved
|
|
|
+ pub fn set_deleted_rows(&mut self, v: ::protobuf::RepeatedField<RowOrder>) {
|
|
|
+ self.deleted_rows = v;
|
|
|
+ }
|
|
|
+
|
|
|
+ // Mutable pointer to the field.
|
|
|
+ pub fn mut_deleted_rows(&mut self) -> &mut ::protobuf::RepeatedField<RowOrder> {
|
|
|
+ &mut self.deleted_rows
|
|
|
+ }
|
|
|
+
|
|
|
+ // Take field
|
|
|
+ pub fn take_deleted_rows(&mut self) -> ::protobuf::RepeatedField<RowOrder> {
|
|
|
+ ::std::mem::replace(&mut self.deleted_rows, ::protobuf::RepeatedField::new())
|
|
|
+ }
|
|
|
+
|
|
|
+ // repeated .RowOrder updated_rows = 4;
|
|
|
+
|
|
|
+
|
|
|
+ pub fn get_updated_rows(&self) -> &[RowOrder] {
|
|
|
+ &self.updated_rows
|
|
|
+ }
|
|
|
+ pub fn clear_updated_rows(&mut self) {
|
|
|
+ self.updated_rows.clear();
|
|
|
+ }
|
|
|
+
|
|
|
+ // Param is passed by value, moved
|
|
|
+ pub fn set_updated_rows(&mut self, v: ::protobuf::RepeatedField<RowOrder>) {
|
|
|
+ self.updated_rows = v;
|
|
|
+ }
|
|
|
+
|
|
|
+ // Mutable pointer to the field.
|
|
|
+ pub fn mut_updated_rows(&mut self) -> &mut ::protobuf::RepeatedField<RowOrder> {
|
|
|
+ &mut self.updated_rows
|
|
|
+ }
|
|
|
+
|
|
|
+ // Take field
|
|
|
+ pub fn take_updated_rows(&mut self) -> ::protobuf::RepeatedField<RowOrder> {
|
|
|
+ ::std::mem::replace(&mut self.updated_rows, ::protobuf::RepeatedField::new())
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+impl ::protobuf::Message for GridBlockOrderChangeset {
|
|
|
+ fn is_initialized(&self) -> bool {
|
|
|
+ for v in &self.inserted_rows {
|
|
|
+ if !v.is_initialized() {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ };
|
|
|
+ for v in &self.deleted_rows {
|
|
|
+ if !v.is_initialized() {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ };
|
|
|
+ for v in &self.updated_rows {
|
|
|
+ if !v.is_initialized() {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ };
|
|
|
+ true
|
|
|
+ }
|
|
|
+
|
|
|
+ fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
|
|
|
+ while !is.eof()? {
|
|
|
+ let (field_number, wire_type) = is.read_tag_unpack()?;
|
|
|
+ match field_number {
|
|
|
+ 1 => {
|
|
|
+ ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.block_id)?;
|
|
|
+ },
|
|
|
+ 2 => {
|
|
|
+ ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.inserted_rows)?;
|
|
|
+ },
|
|
|
+ 3 => {
|
|
|
+ ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.deleted_rows)?;
|
|
|
+ },
|
|
|
+ 4 => {
|
|
|
+ ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.updated_rows)?;
|
|
|
+ },
|
|
|
+ _ => {
|
|
|
+ ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
|
|
|
+ },
|
|
|
+ };
|
|
|
+ }
|
|
|
+ ::std::result::Result::Ok(())
|
|
|
+ }
|
|
|
+
|
|
|
+ // Compute sizes of nested messages
|
|
|
+ #[allow(unused_variables)]
|
|
|
+ fn compute_size(&self) -> u32 {
|
|
|
+ let mut my_size = 0;
|
|
|
+ if !self.block_id.is_empty() {
|
|
|
+ my_size += ::protobuf::rt::string_size(1, &self.block_id);
|
|
|
+ }
|
|
|
+ for value in &self.inserted_rows {
|
|
|
+ let len = value.compute_size();
|
|
|
+ my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
|
|
|
+ };
|
|
|
+ for value in &self.deleted_rows {
|
|
|
+ let len = value.compute_size();
|
|
|
+ my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
|
|
|
+ };
|
|
|
+ for value in &self.updated_rows {
|
|
|
+ let len = value.compute_size();
|
|
|
+ my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
|
|
|
+ };
|
|
|
+ my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
|
|
|
+ self.cached_size.set(my_size);
|
|
|
+ my_size
|
|
|
+ }
|
|
|
+
|
|
|
+ fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
|
|
|
+ if !self.block_id.is_empty() {
|
|
|
+ os.write_string(1, &self.block_id)?;
|
|
|
+ }
|
|
|
+ for v in &self.inserted_rows {
|
|
|
+ os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
|
|
|
+ os.write_raw_varint32(v.get_cached_size())?;
|
|
|
+ v.write_to_with_cached_sizes(os)?;
|
|
|
+ };
|
|
|
+ for v in &self.deleted_rows {
|
|
|
+ os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
|
|
|
+ os.write_raw_varint32(v.get_cached_size())?;
|
|
|
+ v.write_to_with_cached_sizes(os)?;
|
|
|
+ };
|
|
|
+ for v in &self.updated_rows {
|
|
|
+ os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
|
|
|
+ os.write_raw_varint32(v.get_cached_size())?;
|
|
|
+ v.write_to_with_cached_sizes(os)?;
|
|
|
+ };
|
|
|
+ os.write_unknown_fields(self.get_unknown_fields())?;
|
|
|
+ ::std::result::Result::Ok(())
|
|
|
+ }
|
|
|
+
|
|
|
+ fn get_cached_size(&self) -> u32 {
|
|
|
+ self.cached_size.get()
|
|
|
+ }
|
|
|
+
|
|
|
+ fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
|
|
|
+ &self.unknown_fields
|
|
|
+ }
|
|
|
+
|
|
|
+ fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
|
|
|
+ &mut self.unknown_fields
|
|
|
+ }
|
|
|
+
|
|
|
+ fn as_any(&self) -> &dyn (::std::any::Any) {
|
|
|
+ self as &dyn (::std::any::Any)
|
|
|
+ }
|
|
|
+ fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
|
|
|
+ self as &mut dyn (::std::any::Any)
|
|
|
+ }
|
|
|
+ fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
|
|
|
+ self
|
|
|
+ }
|
|
|
+
|
|
|
+ fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
|
|
|
+ Self::descriptor_static()
|
|
|
+ }
|
|
|
+
|
|
|
+ fn new() -> GridBlockOrderChangeset {
|
|
|
+ GridBlockOrderChangeset::new()
|
|
|
+ }
|
|
|
+
|
|
|
+ fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
|
|
|
+ static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
|
|
|
+ descriptor.get(|| {
|
|
|
+ let mut fields = ::std::vec::Vec::new();
|
|
|
+ fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
|
|
|
+ "block_id",
|
|
|
+ |m: &GridBlockOrderChangeset| { &m.block_id },
|
|
|
+ |m: &mut GridBlockOrderChangeset| { &mut m.block_id },
|
|
|
+ ));
|
|
|
+ fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<RowOrder>>(
|
|
|
+ "inserted_rows",
|
|
|
+ |m: &GridBlockOrderChangeset| { &m.inserted_rows },
|
|
|
+ |m: &mut GridBlockOrderChangeset| { &mut m.inserted_rows },
|
|
|
+ ));
|
|
|
+ fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<RowOrder>>(
|
|
|
+ "deleted_rows",
|
|
|
+ |m: &GridBlockOrderChangeset| { &m.deleted_rows },
|
|
|
+ |m: &mut GridBlockOrderChangeset| { &mut m.deleted_rows },
|
|
|
+ ));
|
|
|
+ fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<RowOrder>>(
|
|
|
+ "updated_rows",
|
|
|
+ |m: &GridBlockOrderChangeset| { &m.updated_rows },
|
|
|
+ |m: &mut GridBlockOrderChangeset| { &mut m.updated_rows },
|
|
|
+ ));
|
|
|
+ ::protobuf::reflect::MessageDescriptor::new_pb_name::<GridBlockOrderChangeset>(
|
|
|
+ "GridBlockOrderChangeset",
|
|
|
+ fields,
|
|
|
+ file_descriptor_proto()
|
|
|
+ )
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ fn default_instance() -> &'static GridBlockOrderChangeset {
|
|
|
+ static instance: ::protobuf::rt::LazyV2<GridBlockOrderChangeset> = ::protobuf::rt::LazyV2::INIT;
|
|
|
+ instance.get(GridBlockOrderChangeset::new)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+impl ::protobuf::Clear for GridBlockOrderChangeset {
|
|
|
+ fn clear(&mut self) {
|
|
|
+ self.block_id.clear();
|
|
|
+ self.inserted_rows.clear();
|
|
|
+ self.deleted_rows.clear();
|
|
|
+ self.updated_rows.clear();
|
|
|
+ self.unknown_fields.clear();
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+impl ::std::fmt::Debug for GridBlockOrderChangeset {
|
|
|
+ fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
|
|
|
+ ::protobuf::text_format::fmt(self, f)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+impl ::protobuf::reflect::ProtobufValue for GridBlockOrderChangeset {
|
|
|
+ fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
|
|
|
+ ::protobuf::reflect::ReflectValueRef::Message(self)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
#[derive(PartialEq,Clone,Default)]
|
|
|
pub struct GridBlock {
|
|
|
// message fields
|
|
@@ -5334,30 +5640,34 @@ static file_descriptor_proto_data: &'static [u8] = b"\
|
|
|
\x20\x03(\x0b2\x04.RowR\x05items\"5\n\x11RepeatedGridBlock\x12\x20\n\x05\
|
|
|
items\x18\x01\x20\x03(\x0b2\n.GridBlockR\x05items\"U\n\x0eGridBlockOrder\
|
|
|
\x12\x19\n\x08block_id\x18\x01\x20\x01(\tR\x07blockId\x12(\n\nrow_orders\
|
|
|
- \x18\x02\x20\x03(\x0b2\t.RowOrderR\trowOrders\"E\n\tGridBlock\x12\x0e\n\
|
|
|
- \x02id\x18\x01\x20\x01(\tR\x02id\x12(\n\nrow_orders\x18\x02\x20\x03(\x0b\
|
|
|
- 2\t.RowOrderR\trowOrders\";\n\x04Cell\x12\x19\n\x08field_id\x18\x01\x20\
|
|
|
- \x01(\tR\x07fieldId\x12\x18\n\x07content\x18\x02\x20\x01(\tR\x07content\
|
|
|
- \"\x8f\x01\n\x14CellNotificationData\x12\x17\n\x07grid_id\x18\x01\x20\
|
|
|
- \x01(\tR\x06gridId\x12\x19\n\x08field_id\x18\x02\x20\x01(\tR\x07fieldId\
|
|
|
- \x12\x15\n\x06row_id\x18\x03\x20\x01(\tR\x05rowId\x12\x1a\n\x07content\
|
|
|
- \x18\x04\x20\x01(\tH\0R\x07contentB\x10\n\x0eone_of_content\"+\n\x0cRepe\
|
|
|
- atedCell\x12\x1b\n\x05items\x18\x01\x20\x03(\x0b2\x05.CellR\x05items\"'\
|
|
|
- \n\x11CreateGridPayload\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\"\
|
|
|
- \x1e\n\x06GridId\x12\x14\n\x05value\x18\x01\x20\x01(\tR\x05value\"#\n\
|
|
|
- \x0bGridBlockId\x12\x14\n\x05value\x18\x01\x20\x01(\tR\x05value\"f\n\x10\
|
|
|
- CreateRowPayload\x12\x17\n\x07grid_id\x18\x01\x20\x01(\tR\x06gridId\x12\
|
|
|
- \"\n\x0cstart_row_id\x18\x02\x20\x01(\tH\0R\nstartRowIdB\x15\n\x13one_of\
|
|
|
- _start_row_id\"\xb6\x01\n\x12CreateFieldPayload\x12\x17\n\x07grid_id\x18\
|
|
|
- \x01\x20\x01(\tR\x06gridId\x12\x1c\n\x05field\x18\x02\x20\x01(\x0b2\x06.\
|
|
|
- FieldR\x05field\x12(\n\x10type_option_data\x18\x03\x20\x01(\x0cR\x0etype\
|
|
|
- OptionData\x12&\n\x0estart_field_id\x18\x04\x20\x01(\tH\0R\x0cstartField\
|
|
|
- IdB\x17\n\x15one_of_start_field_id\"d\n\x11QueryFieldPayload\x12\x17\n\
|
|
|
- \x07grid_id\x18\x01\x20\x01(\tR\x06gridId\x126\n\x0cfield_orders\x18\x02\
|
|
|
- \x20\x01(\x0b2\x13.RepeatedFieldOrderR\x0bfieldOrders\"e\n\x16QueryGridB\
|
|
|
- locksPayload\x12\x17\n\x07grid_id\x18\x01\x20\x01(\tR\x06gridId\x122\n\
|
|
|
- \x0cblock_orders\x18\x02\x20\x03(\x0b2\x0f.GridBlockOrderR\x0bblockOrder\
|
|
|
- sb\x06proto3\
|
|
|
+ \x18\x02\x20\x03(\x0b2\t.RowOrderR\trowOrders\"\xc0\x01\n\x17GridBlockOr\
|
|
|
+ derChangeset\x12\x19\n\x08block_id\x18\x01\x20\x01(\tR\x07blockId\x12.\n\
|
|
|
+ \rinserted_rows\x18\x02\x20\x03(\x0b2\t.RowOrderR\x0cinsertedRows\x12,\n\
|
|
|
+ \x0cdeleted_rows\x18\x03\x20\x03(\x0b2\t.RowOrderR\x0bdeletedRows\x12,\n\
|
|
|
+ \x0cupdated_rows\x18\x04\x20\x03(\x0b2\t.RowOrderR\x0bupdatedRows\"E\n\t\
|
|
|
+ GridBlock\x12\x0e\n\x02id\x18\x01\x20\x01(\tR\x02id\x12(\n\nrow_orders\
|
|
|
+ \x18\x02\x20\x03(\x0b2\t.RowOrderR\trowOrders\";\n\x04Cell\x12\x19\n\x08\
|
|
|
+ field_id\x18\x01\x20\x01(\tR\x07fieldId\x12\x18\n\x07content\x18\x02\x20\
|
|
|
+ \x01(\tR\x07content\"\x8f\x01\n\x14CellNotificationData\x12\x17\n\x07gri\
|
|
|
+ d_id\x18\x01\x20\x01(\tR\x06gridId\x12\x19\n\x08field_id\x18\x02\x20\x01\
|
|
|
+ (\tR\x07fieldId\x12\x15\n\x06row_id\x18\x03\x20\x01(\tR\x05rowId\x12\x1a\
|
|
|
+ \n\x07content\x18\x04\x20\x01(\tH\0R\x07contentB\x10\n\x0eone_of_content\
|
|
|
+ \"+\n\x0cRepeatedCell\x12\x1b\n\x05items\x18\x01\x20\x03(\x0b2\x05.CellR\
|
|
|
+ \x05items\"'\n\x11CreateGridPayload\x12\x12\n\x04name\x18\x01\x20\x01(\t\
|
|
|
+ R\x04name\"\x1e\n\x06GridId\x12\x14\n\x05value\x18\x01\x20\x01(\tR\x05va\
|
|
|
+ lue\"#\n\x0bGridBlockId\x12\x14\n\x05value\x18\x01\x20\x01(\tR\x05value\
|
|
|
+ \"f\n\x10CreateRowPayload\x12\x17\n\x07grid_id\x18\x01\x20\x01(\tR\x06gr\
|
|
|
+ idId\x12\"\n\x0cstart_row_id\x18\x02\x20\x01(\tH\0R\nstartRowIdB\x15\n\
|
|
|
+ \x13one_of_start_row_id\"\xb6\x01\n\x12CreateFieldPayload\x12\x17\n\x07g\
|
|
|
+ rid_id\x18\x01\x20\x01(\tR\x06gridId\x12\x1c\n\x05field\x18\x02\x20\x01(\
|
|
|
+ \x0b2\x06.FieldR\x05field\x12(\n\x10type_option_data\x18\x03\x20\x01(\
|
|
|
+ \x0cR\x0etypeOptionData\x12&\n\x0estart_field_id\x18\x04\x20\x01(\tH\0R\
|
|
|
+ \x0cstartFieldIdB\x17\n\x15one_of_start_field_id\"d\n\x11QueryFieldPaylo\
|
|
|
+ ad\x12\x17\n\x07grid_id\x18\x01\x20\x01(\tR\x06gridId\x126\n\x0cfield_or\
|
|
|
+ ders\x18\x02\x20\x01(\x0b2\x13.RepeatedFieldOrderR\x0bfieldOrders\"e\n\
|
|
|
+ \x16QueryGridBlocksPayload\x12\x17\n\x07grid_id\x18\x01\x20\x01(\tR\x06g\
|
|
|
+ ridId\x122\n\x0cblock_orders\x18\x02\x20\x03(\x0b2\x0f.GridBlockOrderR\
|
|
|
+ \x0bblockOrdersb\x06proto3\
|
|
|
";
|
|
|
|
|
|
static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
|