From d2666964d7635b8dea53a9a0d72a51d6db497de5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20H=C3=A4ggqvist?= Date: Tue, 19 Dec 2023 18:20:29 +0100 Subject: [PATCH 1/2] Implement attribute deprecated_readonly While `deprecated` removes the field entirely from generated code, both getters and setters, `deprecated_readonly` only removes the setters and keeps the getters. It's useful for backwards compatibility in some cases. A program might read a buffer written before the deprecation, read the deprecated field if it has a value, do some applicable conversion, and write to a non-deprecated field. Fixes #7940 --- include/flatbuffers/idl.h | 23 +- include/flatbuffers/reflection_generated.h | 26 +- .../google/flatbuffers/reflection/Field.java | 48 +- python/flatbuffers/reflection/Field.py | 51 +- reflection/reflection.fbs | 1 + samples/monster.bfbs | Bin 1888 -> 1960 bytes samples/monster.fbs | 2 +- samples/monster_generated.h | 12 - samples/monster_generated.lobster | 3 - .../my_game/sample/monster_generated.rs | 9 - samples/sample_binary.cpp | 2 +- src/bfbs_gen_lua.cpp | 2 +- src/bfbs_gen_nim.cpp | 6 +- src/idl_gen_cpp.cpp | 32 +- src/idl_gen_csharp.cpp | 13 +- src/idl_gen_dart.cpp | 11 +- src/idl_gen_go.cpp | 10 +- src/idl_gen_java.cpp | 11 +- src/idl_gen_kotlin.cpp | 5 +- src/idl_gen_kotlin_kmp.cpp | 2 +- src/idl_gen_lobster.cpp | 2 +- src/idl_gen_php.cpp | 2 +- src/idl_gen_python.cpp | 8 +- src/idl_gen_rust.cpp | 41 +- src/idl_gen_swift.cpp | 25 +- src/idl_gen_ts.cpp | 18 +- src/idl_parser.cpp | 15 +- tests/arrays_test.bfbs | Bin 1408 -> 1416 bytes tests/monster_test.afb | 6097 ++++++++--------- tests/monster_test.bfbs | Bin 14592 -> 14624 bytes tests/monster_test_bfbs_generated.h | 1054 +-- 31 files changed, 3804 insertions(+), 3727 deletions(-) diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index c84999a5485..a2c3323eb5b 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -326,7 +326,7 @@ struct Definition { struct FieldDef : public Definition { FieldDef() - : deprecated(false), + : deprecated(kNotDeprecated), key(false), shared(false), native_inline(false), @@ -353,8 +353,24 @@ struct FieldDef : public Definition { bool IsDefault() const { return presence == kDefault; } Value value; - bool deprecated; // Field is allowed to be present in old data, but can't be. - // written in new data nor accessed in new code. + + enum Deprecated { + kNotDeprecated, + kDeprecated, + kDeprecatedReadOnly, + }; + Deprecated static MakeFieldDeprecated(bool deprecated, bool readonly) { + FLATBUFFERS_ASSERT(!(deprecated && readonly)); + // clang-format off + return readonly ? FieldDef::kDeprecatedReadOnly + : deprecated ? FieldDef::kDeprecated + : FieldDef::kNotDeprecated; + // clang-format on + } + Deprecated deprecated; // Field is allowed to be present in old data, but + // can't be written in new data, but can optionally + // still be accessed in new code. + bool key; // Field functions as a key for creating sorted vectors. bool shared; // Field will be using string pooling (i.e. CreateSharedString) // as default serialization behavior if field is a string. @@ -972,6 +988,7 @@ class Parser : public ParserState { namespaces_.push_back(empty_namespace_); current_namespace_ = empty_namespace_; known_attributes_["deprecated"] = true; + known_attributes_["deprecated_readonly"] = true; known_attributes_["required"] = true; known_attributes_["key"] = true; known_attributes_["shared"] = true; diff --git a/include/flatbuffers/reflection_generated.h b/include/flatbuffers/reflection_generated.h index ca673b1b6b6..d4d26f6e27e 100644 --- a/include/flatbuffers/reflection_generated.h +++ b/include/flatbuffers/reflection_generated.h @@ -611,13 +611,14 @@ struct Field FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { VT_DEFAULT_INTEGER = 12, VT_DEFAULT_REAL = 14, VT_DEPRECATED = 16, - VT_REQUIRED = 18, - VT_KEY = 20, - VT_ATTRIBUTES = 22, - VT_DOCUMENTATION = 24, - VT_OPTIONAL = 26, - VT_PADDING = 28, - VT_OFFSET64 = 30 + VT_DEPRECATED_READONLY = 18, + VT_REQUIRED = 20, + VT_KEY = 22, + VT_ATTRIBUTES = 24, + VT_DOCUMENTATION = 26, + VT_OPTIONAL = 28, + VT_PADDING = 30, + VT_OFFSET64 = 32 }; const ::flatbuffers::String *name() const { return GetPointer(VT_NAME); @@ -652,6 +653,9 @@ struct Field FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool deprecated() const { return GetField(VT_DEPRECATED, 0) != 0; } + bool deprecated_readonly() const { + return GetField(VT_DEPRECATED_READONLY, 0) != 0; + } bool required() const { return GetField(VT_REQUIRED, 0) != 0; } @@ -686,6 +690,7 @@ struct Field FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { VerifyField(verifier, VT_DEFAULT_INTEGER, 8) && VerifyField(verifier, VT_DEFAULT_REAL, 8) && VerifyField(verifier, VT_DEPRECATED, 1) && + VerifyField(verifier, VT_DEPRECATED_READONLY, 1) && VerifyField(verifier, VT_REQUIRED, 1) && VerifyField(verifier, VT_KEY, 1) && VerifyOffset(verifier, VT_ATTRIBUTES) && @@ -726,6 +731,9 @@ struct FieldBuilder { void add_deprecated(bool deprecated) { fbb_.AddElement(Field::VT_DEPRECATED, static_cast(deprecated), 0); } + void add_deprecated_readonly(bool deprecated_readonly) { + fbb_.AddElement(Field::VT_DEPRECATED_READONLY, static_cast(deprecated_readonly), 0); + } void add_required(bool required) { fbb_.AddElement(Field::VT_REQUIRED, static_cast(required), 0); } @@ -769,6 +777,7 @@ inline ::flatbuffers::Offset CreateField( int64_t default_integer = 0, double default_real = 0.0, bool deprecated = false, + bool deprecated_readonly = false, bool required = false, bool key = false, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> attributes = 0, @@ -790,6 +799,7 @@ inline ::flatbuffers::Offset CreateField( builder_.add_optional(optional); builder_.add_key(key); builder_.add_required(required); + builder_.add_deprecated_readonly(deprecated_readonly); builder_.add_deprecated(deprecated); return builder_.Finish(); } @@ -803,6 +813,7 @@ inline ::flatbuffers::Offset CreateFieldDirect( int64_t default_integer = 0, double default_real = 0.0, bool deprecated = false, + bool deprecated_readonly = false, bool required = false, bool key = false, std::vector<::flatbuffers::Offset> *attributes = nullptr, @@ -822,6 +833,7 @@ inline ::flatbuffers::Offset CreateFieldDirect( default_integer, default_real, deprecated, + deprecated_readonly, required, key, attributes__, diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Field.java b/java/src/main/java/com/google/flatbuffers/reflection/Field.java index 8cd742e01fc..382ba481846 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/Field.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/Field.java @@ -37,28 +37,29 @@ public final class Field extends Table { public long defaultInteger() { int o = __offset(12); return o != 0 ? bb.getLong(o + bb_pos) : 0L; } public double defaultReal() { int o = __offset(14); return o != 0 ? bb.getDouble(o + bb_pos) : 0.0; } public boolean deprecated() { int o = __offset(16); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } - public boolean required() { int o = __offset(18); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } - public boolean key() { int o = __offset(20); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } + public boolean deprecatedReadonly() { int o = __offset(18); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } + public boolean required() { int o = __offset(20); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } + public boolean key() { int o = __offset(22); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } public com.google.flatbuffers.reflection.KeyValue attributes(int j) { return attributes(new com.google.flatbuffers.reflection.KeyValue(), j); } - public com.google.flatbuffers.reflection.KeyValue attributes(com.google.flatbuffers.reflection.KeyValue obj, int j) { int o = __offset(22); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; } - public int attributesLength() { int o = __offset(22); return o != 0 ? __vector_len(o) : 0; } - public com.google.flatbuffers.reflection.KeyValue attributesByKey(String key) { int o = __offset(22); return o != 0 ? com.google.flatbuffers.reflection.KeyValue.__lookup_by_key(null, __vector(o), key, bb) : null; } - public com.google.flatbuffers.reflection.KeyValue attributesByKey(com.google.flatbuffers.reflection.KeyValue obj, String key) { int o = __offset(22); return o != 0 ? com.google.flatbuffers.reflection.KeyValue.__lookup_by_key(obj, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.KeyValue attributes(com.google.flatbuffers.reflection.KeyValue obj, int j) { int o = __offset(24); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; } + public int attributesLength() { int o = __offset(24); return o != 0 ? __vector_len(o) : 0; } + public com.google.flatbuffers.reflection.KeyValue attributesByKey(String key) { int o = __offset(24); return o != 0 ? com.google.flatbuffers.reflection.KeyValue.__lookup_by_key(null, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.KeyValue attributesByKey(com.google.flatbuffers.reflection.KeyValue obj, String key) { int o = __offset(24); return o != 0 ? com.google.flatbuffers.reflection.KeyValue.__lookup_by_key(obj, __vector(o), key, bb) : null; } public com.google.flatbuffers.reflection.KeyValue.Vector attributesVector() { return attributesVector(new com.google.flatbuffers.reflection.KeyValue.Vector()); } - public com.google.flatbuffers.reflection.KeyValue.Vector attributesVector(com.google.flatbuffers.reflection.KeyValue.Vector obj) { int o = __offset(22); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } - public String documentation(int j) { int o = __offset(24); return o != 0 ? __string(__vector(o) + j * 4) : null; } - public int documentationLength() { int o = __offset(24); return o != 0 ? __vector_len(o) : 0; } + public com.google.flatbuffers.reflection.KeyValue.Vector attributesVector(com.google.flatbuffers.reflection.KeyValue.Vector obj) { int o = __offset(24); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + public String documentation(int j) { int o = __offset(26); return o != 0 ? __string(__vector(o) + j * 4) : null; } + public int documentationLength() { int o = __offset(26); return o != 0 ? __vector_len(o) : 0; } public StringVector documentationVector() { return documentationVector(new StringVector()); } - public StringVector documentationVector(StringVector obj) { int o = __offset(24); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } - public boolean optional() { int o = __offset(26); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } + public StringVector documentationVector(StringVector obj) { int o = __offset(26); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + public boolean optional() { int o = __offset(28); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } /** * Number of padding octets to always add after this field. Structs only. */ - public int padding() { int o = __offset(28); return o != 0 ? bb.getShort(o + bb_pos) & 0xFFFF : 0; } + public int padding() { int o = __offset(30); return o != 0 ? bb.getShort(o + bb_pos) & 0xFFFF : 0; } /** * If the field uses 64-bit offsets. */ - public boolean offset64() { int o = __offset(30); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } + public boolean offset64() { int o = __offset(32); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } public static int createField(FlatBufferBuilder builder, int nameOffset, @@ -68,6 +69,7 @@ public static int createField(FlatBufferBuilder builder, long defaultInteger, double defaultReal, boolean deprecated, + boolean deprecatedReadonly, boolean required, boolean key, int attributesOffset, @@ -75,7 +77,7 @@ public static int createField(FlatBufferBuilder builder, boolean optional, int padding, boolean offset64) { - builder.startTable(14); + builder.startTable(15); Field.addDefaultReal(builder, defaultReal); Field.addDefaultInteger(builder, defaultInteger); Field.addDocumentation(builder, documentationOffset); @@ -89,11 +91,12 @@ public static int createField(FlatBufferBuilder builder, Field.addOptional(builder, optional); Field.addKey(builder, key); Field.addRequired(builder, required); + Field.addDeprecatedReadonly(builder, deprecatedReadonly); Field.addDeprecated(builder, deprecated); return Field.endField(builder); } - public static void startField(FlatBufferBuilder builder) { builder.startTable(14); } + public static void startField(FlatBufferBuilder builder) { builder.startTable(15); } public static void addName(FlatBufferBuilder builder, int nameOffset) { builder.addOffset(nameOffset); builder.slot(0); } public static void addType(FlatBufferBuilder builder, int typeOffset) { builder.addOffset(1, typeOffset, 0); } public static void addId(FlatBufferBuilder builder, int id) { builder.addShort(2, (short) id, (short) 0); } @@ -101,17 +104,18 @@ public static int createField(FlatBufferBuilder builder, public static void addDefaultInteger(FlatBufferBuilder builder, long defaultInteger) { builder.addLong(4, defaultInteger, 0L); } public static void addDefaultReal(FlatBufferBuilder builder, double defaultReal) { builder.addDouble(5, defaultReal, 0.0); } public static void addDeprecated(FlatBufferBuilder builder, boolean deprecated) { builder.addBoolean(6, deprecated, false); } - public static void addRequired(FlatBufferBuilder builder, boolean required) { builder.addBoolean(7, required, false); } - public static void addKey(FlatBufferBuilder builder, boolean key) { builder.addBoolean(8, key, false); } - public static void addAttributes(FlatBufferBuilder builder, int attributesOffset) { builder.addOffset(9, attributesOffset, 0); } + public static void addDeprecatedReadonly(FlatBufferBuilder builder, boolean deprecatedReadonly) { builder.addBoolean(7, deprecatedReadonly, false); } + public static void addRequired(FlatBufferBuilder builder, boolean required) { builder.addBoolean(8, required, false); } + public static void addKey(FlatBufferBuilder builder, boolean key) { builder.addBoolean(9, key, false); } + public static void addAttributes(FlatBufferBuilder builder, int attributesOffset) { builder.addOffset(10, attributesOffset, 0); } public static int createAttributesVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } public static void startAttributesVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } - public static void addDocumentation(FlatBufferBuilder builder, int documentationOffset) { builder.addOffset(10, documentationOffset, 0); } + public static void addDocumentation(FlatBufferBuilder builder, int documentationOffset) { builder.addOffset(11, documentationOffset, 0); } public static int createDocumentationVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } public static void startDocumentationVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } - public static void addOptional(FlatBufferBuilder builder, boolean optional) { builder.addBoolean(11, optional, false); } - public static void addPadding(FlatBufferBuilder builder, int padding) { builder.addShort(12, (short) padding, (short) 0); } - public static void addOffset64(FlatBufferBuilder builder, boolean offset64) { builder.addBoolean(13, offset64, false); } + public static void addOptional(FlatBufferBuilder builder, boolean optional) { builder.addBoolean(12, optional, false); } + public static void addPadding(FlatBufferBuilder builder, int padding) { builder.addShort(13, (short) padding, (short) 0); } + public static void addOffset64(FlatBufferBuilder builder, boolean offset64) { builder.addBoolean(14, offset64, false); } public static int endField(FlatBufferBuilder builder) { int o = builder.endTable(); builder.required(o, 4); // name diff --git a/python/flatbuffers/reflection/Field.py b/python/flatbuffers/reflection/Field.py index 2cce39203bc..44f15f6601d 100644 --- a/python/flatbuffers/reflection/Field.py +++ b/python/flatbuffers/reflection/Field.py @@ -82,22 +82,29 @@ def Deprecated(self): return False # Field - def Required(self): + def DeprecatedReadonly(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(18)) if o != 0: return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) return False # Field - def Key(self): + def Required(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(20)) if o != 0: return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) return False # Field - def Attributes(self, j): + def Key(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(22)) + if o != 0: + return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) + return False + + # Field + def Attributes(self, j): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(24)) if o != 0: x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 @@ -110,19 +117,19 @@ def Attributes(self, j): # Field def AttributesLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(22)) + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(24)) if o != 0: return self._tab.VectorLen(o) return 0 # Field def AttributesIsNone(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(22)) + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(24)) return o == 0 # Field def Documentation(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(24)) + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(26)) if o != 0: a = self._tab.Vector(o) return self._tab.String(a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) @@ -130,19 +137,19 @@ def Documentation(self, j): # Field def DocumentationLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(24)) + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(26)) if o != 0: return self._tab.VectorLen(o) return 0 # Field def DocumentationIsNone(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(24)) + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(26)) return o == 0 # Field def Optional(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(26)) + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(28)) if o != 0: return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) return False @@ -150,7 +157,7 @@ def Optional(self): # Number of padding octets to always add after this field. Structs only. # Field def Padding(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(28)) + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(30)) if o != 0: return self._tab.Get(flatbuffers.number_types.Uint16Flags, o + self._tab.Pos) return 0 @@ -158,13 +165,13 @@ def Padding(self): # If the field uses 64-bit offsets. # Field def Offset64(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(30)) + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(32)) if o != 0: return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) return False def FieldStart(builder): - builder.StartObject(14) + builder.StartObject(15) def Start(builder): FieldStart(builder) @@ -211,20 +218,26 @@ def FieldAddDeprecated(builder, deprecated): def AddDeprecated(builder, deprecated): FieldAddDeprecated(builder, deprecated) +def FieldAddDeprecatedReadonly(builder, deprecatedReadonly): + builder.PrependBoolSlot(7, deprecatedReadonly, 0) + +def AddDeprecatedReadonly(builder, deprecatedReadonly): + FieldAddDeprecatedReadonly(builder, deprecatedReadonly) + def FieldAddRequired(builder, required): - builder.PrependBoolSlot(7, required, 0) + builder.PrependBoolSlot(8, required, 0) def AddRequired(builder, required): FieldAddRequired(builder, required) def FieldAddKey(builder, key): - builder.PrependBoolSlot(8, key, 0) + builder.PrependBoolSlot(9, key, 0) def AddKey(builder, key): FieldAddKey(builder, key) def FieldAddAttributes(builder, attributes): - builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) + builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) def AddAttributes(builder, attributes): FieldAddAttributes(builder, attributes) @@ -236,7 +249,7 @@ def StartAttributesVector(builder, numElems): return FieldStartAttributesVector(builder, numElems) def FieldAddDocumentation(builder, documentation): - builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) + builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) def AddDocumentation(builder, documentation): FieldAddDocumentation(builder, documentation) @@ -248,19 +261,19 @@ def StartDocumentationVector(builder, numElems): return FieldStartDocumentationVector(builder, numElems) def FieldAddOptional(builder, optional): - builder.PrependBoolSlot(11, optional, 0) + builder.PrependBoolSlot(12, optional, 0) def AddOptional(builder, optional): FieldAddOptional(builder, optional) def FieldAddPadding(builder, padding): - builder.PrependUint16Slot(12, padding, 0) + builder.PrependUint16Slot(13, padding, 0) def AddPadding(builder, padding): FieldAddPadding(builder, padding) def FieldAddOffset64(builder, offset64): - builder.PrependBoolSlot(13, offset64, 0) + builder.PrependBoolSlot(14, offset64, 0) def AddOffset64(builder, offset64): FieldAddOffset64(builder, offset64) diff --git a/reflection/reflection.fbs b/reflection/reflection.fbs index 985b45160d4..e6adafad465 100644 --- a/reflection/reflection.fbs +++ b/reflection/reflection.fbs @@ -79,6 +79,7 @@ table Field { default_integer:long = 0; default_real:double = 0.0; deprecated:bool = false; + deprecated_readonly:bool = false; required:bool = false; key:bool = false; attributes:[KeyValue]; diff --git a/samples/monster.bfbs b/samples/monster.bfbs index c0a6a6c174b49557d12b84a2d51627d09275d4fc..8e52830bfc697e22bde918f51fe1196e989786bd 100644 GIT binary patch delta 644 zcmZ8fO-oc^6h7yEd991x!O3hUW`q<)ZBzm`5txOwC5Q1nJC=dLw! zht9PtA3%Q=eRGhq3I7U+vHl&fhujzVZD0)fTQcKbc8*Tuky|_ef+_wDq9J9h delta 542 zcmX|8Jx>Bb5S_g*PQ9Q+G)Exej3HtS8sbMtM54r4(Mh7wiUc~M7Ft;N4@?a1H5L{| z3JR(82k--=u&}4Ju(eQ;^UaZC@7~VN?99BkyRFGy*h~;naj&@Fuu7>u*4uyzxC)VN z5Pb+D{GDStxnPhGPMoz@ziy7fo^^$3Q>_ zwaVG)36Y8XD12t>4`e}Xq;lXf|NIixG~!{W2~>f!yc2QR6LyxH@^H~8P{hrO^@|$E zEwa&^<(U5LNFk86~(V@IolaUUHOwjOyu(GetField(VT_COLOR, 2)); } - bool mutate_color(MyGame::Sample::Color _color = static_cast(2)) { - return SetField(VT_COLOR, static_cast(_color), 2); - } const ::flatbuffers::Vector<::flatbuffers::Offset> *weapons() const { return GetPointer> *>(VT_WEAPONS); } @@ -379,9 +376,6 @@ struct MonsterBuilder { void add_inventory(::flatbuffers::Offset<::flatbuffers::Vector> inventory) { fbb_.AddOffset(Monster::VT_INVENTORY, inventory); } - void add_color(MyGame::Sample::Color color) { - fbb_.AddElement(Monster::VT_COLOR, static_cast(color), 2); - } void add_weapons(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> weapons) { fbb_.AddOffset(Monster::VT_WEAPONS, weapons); } @@ -412,7 +406,6 @@ inline ::flatbuffers::Offset CreateMonster( int16_t hp = 100, ::flatbuffers::Offset<::flatbuffers::String> name = 0, ::flatbuffers::Offset<::flatbuffers::Vector> inventory = 0, - MyGame::Sample::Color color = MyGame::Sample::Color_Blue, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> weapons = 0, MyGame::Sample::Equipment equipped_type = MyGame::Sample::Equipment_NONE, ::flatbuffers::Offset equipped = 0, @@ -427,7 +420,6 @@ inline ::flatbuffers::Offset CreateMonster( builder_.add_hp(hp); builder_.add_mana(mana); builder_.add_equipped_type(equipped_type); - builder_.add_color(color); return builder_.Finish(); } @@ -438,7 +430,6 @@ inline ::flatbuffers::Offset CreateMonsterDirect( int16_t hp = 100, const char *name = nullptr, const std::vector *inventory = nullptr, - MyGame::Sample::Color color = MyGame::Sample::Color_Blue, const std::vector<::flatbuffers::Offset> *weapons = nullptr, MyGame::Sample::Equipment equipped_type = MyGame::Sample::Equipment_NONE, ::flatbuffers::Offset equipped = 0, @@ -454,7 +445,6 @@ inline ::flatbuffers::Offset CreateMonsterDirect( hp, name__, inventory__, - color, weapons__, equipped_type, equipped, @@ -626,7 +616,6 @@ inline ::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBui auto _hp = _o->hp; auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name); auto _inventory = _o->inventory.size() ? _fbb.CreateVector(_o->inventory) : 0; - auto _color = _o->color; auto _weapons = _o->weapons.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->weapons.size(), [](size_t i, _VectorArgs *__va) { return CreateWeapon(*__va->__fbb, __va->__o->weapons[i].get(), __va->__rehasher); }, &_va ) : 0; auto _equipped_type = _o->equipped.type; auto _equipped = _o->equipped.Pack(_fbb); @@ -638,7 +627,6 @@ inline ::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBui _hp, _name, _inventory, - _color, _weapons, _equipped_type, _equipped, diff --git a/samples/monster_generated.lobster b/samples/monster_generated.lobster index c25b0100c48..abe245e33f5 100644 --- a/samples/monster_generated.lobster +++ b/samples/monster_generated.lobster @@ -84,9 +84,6 @@ struct MonsterBuilder: def add_inventory(inventory:flatbuffers.offset): b_.PrependUOffsetTRelativeSlot(5, inventory) return this - def add_color(color:Color): - b_.PrependInt8Slot(6, color, 2) - return this def add_weapons(weapons:flatbuffers.offset): b_.PrependUOffsetTRelativeSlot(7, weapons) return this diff --git a/samples/rust_generated/my_game/sample/monster_generated.rs b/samples/rust_generated/my_game/sample/monster_generated.rs index 34405c474f4..270941ea035 100644 --- a/samples/rust_generated/my_game/sample/monster_generated.rs +++ b/samples/rust_generated/my_game/sample/monster_generated.rs @@ -59,7 +59,6 @@ impl<'a> Monster<'a> { builder.add_hp(args.hp); builder.add_mana(args.mana); builder.add_equipped_type(args.equipped_type); - builder.add_color(args.color); builder.finish() } @@ -222,7 +221,6 @@ pub struct MonsterArgs<'a> { pub hp: i16, pub name: Option>, pub inventory: Option>>, - pub color: Color, pub weapons: Option>>>>, pub equipped_type: Equipment, pub equipped: Option>, @@ -237,7 +235,6 @@ impl<'a> Default for MonsterArgs<'a> { hp: 100, name: None, inventory: None, - color: Color::Blue, weapons: None, equipped_type: Equipment::NONE, equipped: None, @@ -272,10 +269,6 @@ impl<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> MonsterBuilder<'a, 'b, A> { self.fbb_.push_slot_always::>(Monster::VT_INVENTORY, inventory); } #[inline] - pub fn add_color(&mut self, color: Color) { - self.fbb_.push_slot::(Monster::VT_COLOR, color, Color::Blue); - } - #[inline] pub fn add_weapons(&mut self, weapons: flatbuffers::WIPOffset>>>) { self.fbb_.push_slot_always::>(Monster::VT_WEAPONS, weapons); } @@ -377,7 +370,6 @@ impl MonsterT { let inventory = self.inventory.as_ref().map(|x|{ _fbb.create_vector(x) }); - let color = self.color; let weapons = self.weapons.as_ref().map(|x|{ let w: Vec<_> = x.iter().map(|t| t.pack(_fbb)).collect();_fbb.create_vector(&w) }); @@ -392,7 +384,6 @@ impl MonsterT { hp, name, inventory, - color, weapons, equipped_type, equipped, diff --git a/samples/sample_binary.cpp b/samples/sample_binary.cpp index b8f4f1f6c37..6ff0b2e17f6 100644 --- a/samples/sample_binary.cpp +++ b/samples/sample_binary.cpp @@ -51,7 +51,7 @@ int main(int /*argc*/, const char * /*argv*/[]) { // Shortcut for creating monster with all fields set: auto orc = CreateMonster(builder, &position, 150, 80, name, inventory, - Color_Red, weapons, Equipment_Weapon, axe.Union()); + weapons, Equipment_Weapon, axe.Union()); builder.Finish(orc); // Serialize the root of the object. diff --git a/src/bfbs_gen_lua.cpp b/src/bfbs_gen_lua.cpp index 185e859620a..5708482deaf 100644 --- a/src/bfbs_gen_lua.cpp +++ b/src/bfbs_gen_lua.cpp @@ -217,7 +217,7 @@ class LuaBfbsGenerator : public BaseBfbsGenerator { // Create all the field accessors. ForAllFields(object, /*reverse=*/false, [&](const r::Field *field) { // Skip writing deprecated fields altogether. - if (field->deprecated()) { return; } + if (field->deprecated() && !field->deprecated_readonly()) { return; } const std::string field_name = namer_.Field(*field); const r::BaseType base_type = field->type()->base_type(); diff --git a/src/bfbs_gen_nim.cpp b/src/bfbs_gen_nim.cpp index 25da044d1af..464a336de4b 100644 --- a/src/bfbs_gen_nim.cpp +++ b/src/bfbs_gen_nim.cpp @@ -195,7 +195,7 @@ class NimBfbsGenerator : public BaseBfbsGenerator { // Create all the field accessors. ForAllFields(object, /*reverse=*/false, [&](const r::Field *field) { // Skip writing deprecated fields altogether. - if (field->deprecated()) { return; } + if (field->deprecated() && !field->deprecated_readonly()) { return; } const std::string field_name = namer_.Field(*field); const r::BaseType base_type = field->type()->base_type(); @@ -256,7 +256,9 @@ class NimBfbsGenerator : public BaseBfbsGenerator { } } code += getter_signature + getter_code; - if (IsScalar(base_type)) { code += setter_signature + setter_code; } + if (!field->deprecated_readonly() && IsScalar(base_type)) { + code += setter_signature + setter_code; + } } else if (base_type == r::Array || base_type == r::Vector) { const r::BaseType vector_base_type = field->type()->element(); uint32_t element_size = field->type()->element_size(); diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 833d462f49f..b894b447e02 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -1886,7 +1886,8 @@ class CppGenerator : public BaseGenerator { // Generate a member, including a default value for scalars and raw pointers. void GenMember(const FieldDef &field) { - if (!field.deprecated && // Deprecated fields won't be accessible. + if (field.deprecated != + FieldDef::kDeprecated && // Deprecated fields won't be accessible. field.value.type.base_type != BASE_TYPE_UTYPE && (!IsVector(field.value.type) || field.value.type.element != BASE_TYPE_UTYPE)) { @@ -1930,7 +1931,7 @@ class CppGenerator : public BaseGenerator { bool NeedsCopyCtorAssignOp(const StructDef &struct_def) { for (const auto &field : struct_def.fields.vec) { const auto &type = field->value.type; - if (field->deprecated) continue; + if (field->deprecated == FieldDef::kDeprecated) continue; if (type.base_type == BASE_TYPE_STRUCT) { const auto cpp_type = field->attributes.Lookup("cpp_type"); const auto cpp_ptr_type = field->attributes.Lookup("cpp_ptr_type"); @@ -2034,7 +2035,9 @@ class CppGenerator : public BaseGenerator { std::string swaps; for (const auto &field : struct_def.fields.vec) { const auto &type = field->value.type; - if (field->deprecated || type.base_type == BASE_TYPE_UTYPE) continue; + if (field->deprecated == FieldDef::kDeprecated || + type.base_type == BASE_TYPE_UTYPE) + continue; if (type.base_type == BASE_TYPE_STRUCT) { if (!initializer_list.empty()) { initializer_list += ",\n "; } const auto cpp_type = field->attributes.Lookup("cpp_type"); @@ -2135,7 +2138,8 @@ class CppGenerator : public BaseGenerator { const auto accessor = Name(field) + accessSuffix; const auto lhs_accessor = "lhs." + accessor; const auto rhs_accessor = "rhs." + accessor; - if (!field.deprecated && // Deprecated fields won't be accessible. + if (field.deprecated != FieldDef::kDeprecated && // Deprecated fields + // won't be accessible. field.value.type.base_type != BASE_TYPE_UTYPE && (!IsVector(field.value.type) || field.value.type.element != BASE_TYPE_UTYPE)) { @@ -2637,7 +2641,7 @@ class CppGenerator : public BaseGenerator { bool need_else = false; // Generate one index-based getter for each field. for (const auto &field : struct_def.fields.vec) { - if (field->deprecated) { + if (field->deprecated == FieldDef::kDeprecated) { // Deprecated fields won't be accessible. continue; } @@ -2677,7 +2681,7 @@ class CppGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { const auto &field = **it; - if (field.deprecated) { + if (field.deprecated == FieldDef::kDeprecated) { // Deprecated fields won't be accessible. continue; } @@ -2827,7 +2831,7 @@ class CppGenerator : public BaseGenerator { code_ += " enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {"; for (const auto &field : struct_def.fields.vec) { - if (field->deprecated) { + if (field->deprecated == FieldDef::kDeprecated) { // Deprecated fields won't be accessible. continue; } @@ -2843,14 +2847,17 @@ class CppGenerator : public BaseGenerator { // Generate the accessors. for (const auto &field : struct_def.fields.vec) { - if (field->deprecated) { + if (field->deprecated == FieldDef::kDeprecated) { // Deprecated fields won't be accessible. continue; } code_.SetValue("FIELD_NAME", Name(*field)); GenTableFieldGetter(*field); - if (opts_.mutable_buffer) { GenTableFieldSetter(*field); } + if (field->deprecated != FieldDef::kDeprecatedReadOnly && + opts_.mutable_buffer) { + GenTableFieldSetter(*field); + } auto nfn = GetNestedFlatBufferName(*field); if (!nfn.empty()) { @@ -2886,7 +2893,7 @@ class CppGenerator : public BaseGenerator { code_ += " bool Verify(::flatbuffers::Verifier &verifier) const {"; code_ += " return VerifyTableStart(verifier)\\"; for (const auto &field : struct_def.fields.vec) { - if (field->deprecated) { continue; } + if (field->deprecated == FieldDef::kDeprecated) { continue; } GenVerifyCall(*field, " &&\n "); } @@ -2905,7 +2912,8 @@ class CppGenerator : public BaseGenerator { // Explicit specializations for union accessors for (const auto &field : struct_def.fields.vec) { - if (field->deprecated || field->value.type.base_type != BASE_TYPE_UNION) { + if (field->deprecated == FieldDef::kDeprecated || + field->value.type.base_type != BASE_TYPE_UNION) { continue; } @@ -3671,7 +3679,7 @@ class CppGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { const auto &field = **it; - if (field.deprecated) { continue; } + if (field.deprecated == FieldDef::kDeprecated) { continue; } // Assign a value from |this| to |_o|. Values from |this| are stored // in a variable |_e| by calling this->field_type(). The value is then diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index 9988523f32f..0e39d6bae42 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -789,7 +789,7 @@ class CSharpGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; GenVerifyCall(code_, field, ""); } @@ -908,7 +908,7 @@ class CSharpGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; GenComment(field.doc_comment, code_ptr, &comment_config, " "); std::string type_name = GenTypeGet(field.value.type); std::string type_name_dest = GenTypeGet(field.value.type); @@ -1208,7 +1208,8 @@ class CSharpGenerator : public BaseGenerator { code += "__p.bb) : null; }\n"; } // Generate mutators for scalar fields or vectors of scalars. - if (parser_.opts.mutable_buffer) { + if (field.deprecated != FieldDef::kDeprecatedReadOnly && + parser_.opts.mutable_buffer) { auto is_series = (IsSeries(field.value.type)); const auto &underlying_type = is_series ? field.value.type.VectorType() : field.value.type; @@ -1920,7 +1921,7 @@ class CSharpGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; auto camel_name = Name(field); if (camel_name == struct_def.name) { camel_name += "_"; } auto camel_name_short = Name(field); @@ -2382,7 +2383,7 @@ class CSharpGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; if (field.value.type.base_type == BASE_TYPE_UTYPE) continue; if (field.value.type.element == BASE_TYPE_UTYPE) continue; auto type_name = GenTypeGet_ObjectAPI(field.value.type, opts); @@ -2451,7 +2452,7 @@ class CSharpGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; if (field.value.type.base_type == BASE_TYPE_UTYPE) continue; if (field.value.type.element == BASE_TYPE_UTYPE) continue; auto camel_name = Name(field); diff --git a/src/idl_gen_dart.cpp b/src/idl_gen_dart.cpp index f0df15da0f8..26a6077966e 100644 --- a/src/idl_gen_dart.cpp +++ b/src/idl_gen_dart.cpp @@ -465,7 +465,7 @@ class DartGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { FieldDef &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; auto offset = static_cast(it - struct_def.fields.vec.begin()); non_deprecated_fields.push_back(std::make_pair(offset, &field)); } @@ -810,6 +810,7 @@ class DartGenerator : public BaseGenerator { for (auto it = non_deprecated_fields.begin(); it != non_deprecated_fields.end(); ++it) { const FieldDef &field = *it->second; + if (field.deprecated == FieldDef::kDeprecatedReadOnly) continue; const std::string field_name = namer_.Field(field); if (IsStruct(field.value.type)) { @@ -826,6 +827,7 @@ class DartGenerator : public BaseGenerator { for (auto it = non_deprecated_fields.rbegin(); it != non_deprecated_fields.rend(); ++it) { const FieldDef &field = *it->second; + if (field.deprecated == FieldDef::kDeprecatedReadOnly) continue; const std::string field_name = namer_.Field(field); if (field.padding) { @@ -857,6 +859,7 @@ class DartGenerator : public BaseGenerator { for (auto it = non_deprecated_fields.begin(); it != non_deprecated_fields.end(); ++it) { const auto &field = *it->second; + if (field.deprecated == FieldDef::kDeprecatedReadOnly) continue; const auto offset = it->first; const std::string add_field = namer_.Method("add", field); const std::string field_var = namer_.Variable(field); @@ -898,6 +901,7 @@ class DartGenerator : public BaseGenerator { for (auto it = non_deprecated_fields.begin(); it != non_deprecated_fields.end(); ++it) { const FieldDef &field = *it->second; + if (field.deprecated == FieldDef::kDeprecatedReadOnly) continue; code += " final " + GenDartTypeName(field.value.type, struct_def.defined_namespace, @@ -912,6 +916,7 @@ class DartGenerator : public BaseGenerator { for (auto it = non_deprecated_fields.begin(); it != non_deprecated_fields.end(); ++it) { const FieldDef &field = *it->second; + if (field.deprecated == FieldDef::kDeprecatedReadOnly) continue; code += " "; code += (struct_def.fixed ? "required " : "") + @@ -924,6 +929,7 @@ class DartGenerator : public BaseGenerator { for (auto it = non_deprecated_fields.begin(); it != non_deprecated_fields.end(); ++it) { const FieldDef &field = *it->second; + if (field.deprecated == FieldDef::kDeprecatedReadOnly) continue; code += "_" + namer_.Variable(field) + " = " + namer_.Variable(field); if (it == non_deprecated_fields.end() - 1) { @@ -961,6 +967,7 @@ class DartGenerator : public BaseGenerator { for (auto it = non_deprecated_fields.begin(); it != non_deprecated_fields.end(); ++it) { const FieldDef &field = *it->second; + if (field.deprecated == FieldDef::kDeprecatedReadOnly) continue; if (IsScalar(field.value.type.base_type) || IsStruct(field.value.type)) continue; @@ -1036,6 +1043,7 @@ class DartGenerator : public BaseGenerator { for (auto it = non_deprecated_fields.rbegin(); it != non_deprecated_fields.rend(); ++it) { const FieldDef &field = *it->second; + if (field.deprecated == FieldDef::kDeprecatedReadOnly) continue; const std::string field_name = namer_.Field(field); if (field.padding) { @@ -1070,6 +1078,7 @@ class DartGenerator : public BaseGenerator { for (auto it = non_deprecated_fields.begin(); it != non_deprecated_fields.end(); ++it) { const FieldDef &field = *it->second; + if (field.deprecated == FieldDef::kDeprecatedReadOnly) continue; auto offset = it->first; std::string field_var = diff --git a/src/idl_gen_go.cpp b/src/idl_gen_go.cpp index 6bbc5dc8922..e933788a6b2 100644 --- a/src/idl_gen_go.cpp +++ b/src/idl_gen_go.cpp @@ -907,10 +907,12 @@ class GoGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; GenStructAccessor(struct_def, field, code_ptr); - GenStructMutator(struct_def, field, code_ptr); + if (field.deprecated != FieldDef::kDeprecatedReadOnly) { + GenStructMutator(struct_def, field, code_ptr); + } // TODO(michaeltle): Support querying fixed struct by key. Currently, // we only support keyed tables. if (!struct_def.fixed && field.key) { @@ -1009,7 +1011,7 @@ class GoGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { const FieldDef &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; if (IsScalar(field.value.type.base_type) && field.value.type.enum_def != nullptr && field.value.type.enum_def->is_union) @@ -1225,7 +1227,7 @@ class GoGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { const FieldDef &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; const std::string field_field = namer_.Field(field); const std::string field_var = namer_.Variable(field); const std::string length = field_var + "Length"; diff --git a/src/idl_gen_java.cpp b/src/idl_gen_java.cpp index 51c388d4d9e..4d71e66e3ab 100644 --- a/src/idl_gen_java.cpp +++ b/src/idl_gen_java.cpp @@ -750,7 +750,7 @@ class JavaGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; GenComment(field.doc_comment, &code, &comment_config, " "); const std::string type_name = GenTypeGet(field.value.type); const std::string type_name_dest = GenTypeNameDest(field.value.type); @@ -993,7 +993,8 @@ class JavaGenerator : public BaseGenerator { code += "bb) : null; }\n"; } // Generate mutators for scalar fields or vectors of scalars. - if (parser_.opts.mutable_buffer) { + if (field.deprecated != FieldDef::kDeprecatedReadOnly && + parser_.opts.mutable_buffer) { auto is_series = (IsSeries(field.value.type)); const auto &underlying_type = is_series ? field.value.type.VectorType() : field.value.type; @@ -1488,7 +1489,7 @@ class JavaGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { const auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; if (field.value.type.base_type == BASE_TYPE_UTYPE) continue; if (field.value.type.element == BASE_TYPE_UTYPE) continue; const auto accessor = namer_.Method(field); @@ -2078,7 +2079,7 @@ class JavaGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { const auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; if (field.value.type.base_type == BASE_TYPE_UTYPE) continue; if (field.value.type.element == BASE_TYPE_UTYPE) continue; auto type_name = GenTypeGet_ObjectAPI(field.value.type, false, true); @@ -2119,7 +2120,7 @@ class JavaGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { const auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; if (field.value.type.base_type == BASE_TYPE_UTYPE) continue; if (field.value.type.element == BASE_TYPE_UTYPE) continue; const auto get_field = namer_.Method("get", field); diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index 7b95f967a32..00f165e9800 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -918,7 +918,7 @@ class KotlinGenerator : public BaseGenerator { FieldDef *key_field = nullptr; for (auto it = fields_vec.begin(); it != fields_vec.end(); ++it) { auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; if (field.key) key_field = &field; GenerateComment(field.doc_comment, writer, &comment_config); @@ -1212,7 +1212,8 @@ class KotlinGenerator : public BaseGenerator { } // Generate mutators for scalar fields or vectors of scalars. - if (parser_.opts.mutable_buffer) { + if (field.deprecated != FieldDef::kDeprecatedReadOnly && + parser_.opts.mutable_buffer) { auto value_type = field.value.type; auto underlying_type = value_base_type == BASE_TYPE_VECTOR ? value_type.VectorType() diff --git a/src/idl_gen_kotlin_kmp.cpp b/src/idl_gen_kotlin_kmp.cpp index 2dba4942564..55e5c5f7f85 100644 --- a/src/idl_gen_kotlin_kmp.cpp +++ b/src/idl_gen_kotlin_kmp.cpp @@ -1003,7 +1003,7 @@ class KotlinKMPGenerator : public BaseGenerator { FieldDef *key_field = nullptr; for (auto it = fields_vec.begin(); it != fields_vec.end(); ++it) { auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; if (field.key) key_field = &field; GenerateComment(field.doc_comment, writer, &comment_config); diff --git a/src/idl_gen_lobster.cpp b/src/idl_gen_lobster.cpp index de4e1526408..95ccd56206b 100644 --- a/src/idl_gen_lobster.cpp +++ b/src/idl_gen_lobster.cpp @@ -283,7 +283,7 @@ class LobsterGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; GenStructAccessor(struct_def, field, code_ptr); } code += "\n"; diff --git a/src/idl_gen_php.cpp b/src/idl_gen_php.cpp index 16ba3385e9a..6971304ec7d 100644 --- a/src/idl_gen_php.cpp +++ b/src/idl_gen_php.cpp @@ -800,7 +800,7 @@ class PhpGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; GenStructAccessor(struct_def, field, code_ptr); } diff --git a/src/idl_gen_python.cpp b/src/idl_gen_python.cpp index 1c814cd53cf..40b2f848868 100644 --- a/src/idl_gen_python.cpp +++ b/src/idl_gen_python.cpp @@ -1588,7 +1588,7 @@ class PythonGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; GenStructAccessor(struct_def, field, code_ptr, imports); } @@ -1740,7 +1740,7 @@ class PythonGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; // Determines field type, default value, and typing imports. auto base_type = field.value.type.base_type; @@ -1862,7 +1862,7 @@ class PythonGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; // Wrties the comparison statement for this field. const auto field_field = namer_.Field(field); @@ -2048,7 +2048,7 @@ class PythonGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; auto field_type = TypeName(field); switch (field.value.type.base_type) { diff --git a/src/idl_gen_rust.cpp b/src/idl_gen_rust.cpp index b8811c6f3ff..71fee4ae879 100644 --- a/src/idl_gen_rust.cpp +++ b/src/idl_gen_rust.cpp @@ -1611,11 +1611,13 @@ class RustGenerator : public BaseGenerator { void ForAllTableFields(const StructDef &struct_def, std::function cb, - bool reversed = false) { + bool readOnly = false, bool reversed = false) { // TODO(cneo): Remove `reversed` overload. It's only here to minimize the // diff when refactoring to the `ForAllX` helper functions. auto go = [&](const FieldDef &field) { - if (field.deprecated) return; + if ((!readOnly && field.deprecated) || + (readOnly && field.deprecated == FieldDef::kDeprecated)) + return; code_.SetValue("OFFSET_NAME", namer_.LegacyRustFieldOffsetName(field)); code_.SetValue("OFFSET_VALUE", NumToString(field.value.offset)); code_.SetValue("FIELD", namer_.Field(field)); @@ -1670,7 +1672,8 @@ class RustGenerator : public BaseGenerator { code_ += "pub const {{OFFSET_NAME}}: flatbuffers::VOffsetT = " "{{OFFSET_VALUE}};"; - }); + }, + /*readOnly=*/true); code_ += ""; if (parser_.opts.generate_name_strings) { @@ -1715,6 +1718,7 @@ class RustGenerator : public BaseGenerator { code_ += " builder.add_{{FIELD}}(args.{{FIELD}});"; } }, + /*readOnly=*/false, /*reverse=*/true); } code_ += " builder.finish()"; @@ -1814,12 +1818,14 @@ class RustGenerator : public BaseGenerator { code_ += " {{EXPR}}"; code_ += " };"; } - }); + }, + /*readOnly=*/true); code_ += " {{STRUCT_OTY}} {"; ForAllObjectTableFields(struct_def, [&](const FieldDef &field) { if (field.value.type.base_type == BASE_TYPE_UTYPE) return; code_ += " {{FIELD}},"; - }); + }, + /*readOnly=*/true); code_ += " }"; code_ += " }"; } @@ -1891,7 +1897,8 @@ class RustGenerator : public BaseGenerator { } code_ += "}"; } - }); + }, + /*readOnly=*/true); // Explicit specializations for union accessors ForAllTableFields(struct_def, [&](const FieldDef &field) { @@ -1944,7 +1951,8 @@ class RustGenerator : public BaseGenerator { code_ += "}"; code_ += ""; }); - }); + }, + /*readOnly=*/true); code_ += "}"; // End of table impl. code_ += ""; @@ -1993,7 +2001,8 @@ class RustGenerator : public BaseGenerator { code_ += " _ => Ok(()),"; code_ += " }"; code_ += " })?\\"; - }); + }, + /*readOnly=*/true); code_ += "\n .finish();"; code_ += " Ok(())"; code_ += " }"; @@ -2206,7 +2215,8 @@ class RustGenerator : public BaseGenerator { // Most fields. code_ += " ds.field(\"{{FIELD}}\", &self.{{FIELD}}());"; } - }); + }, + /*readOnly=*/true); code_ += " ds.finish()"; code_ += " }"; code_ += "}"; @@ -2225,7 +2235,8 @@ class RustGenerator : public BaseGenerator { // skip making a field for the discriminant. if (field.value.type.base_type == BASE_TYPE_UTYPE) return; code_ += "pub {{FIELD}}: {{FIELD_OTY}},"; - }); + }, + /*readOnly=*/true); code_ += "}"; code_ += "impl Default for {{STRUCT_OTY}} {"; @@ -2235,7 +2246,8 @@ class RustGenerator : public BaseGenerator { if (field.value.type.base_type == BASE_TYPE_UTYPE) return; std::string default_value = GetDefaultValue(field, kObject); code_ += " {{FIELD}}: " + default_value + ","; - }); + }, + /*readOnly=*/true); code_ += " }"; code_ += " }"; code_ += "}"; @@ -2349,11 +2361,14 @@ class RustGenerator : public BaseGenerator { code_ += "}"; } void ForAllObjectTableFields(const StructDef &table, - std::function cb) { + std::function cb, + bool readOnly = false) { const std::vector &v = table.fields.vec; for (auto it = v.begin(); it != v.end(); it++) { const FieldDef &field = **it; - if (field.deprecated) continue; + if ((!readOnly && field.deprecated) || + (readOnly && field.deprecated == FieldDef::kDeprecated)) + continue; code_.SetValue("FIELD", namer_.Field(field)); code_.SetValue("FIELD_OTY", ObjectFieldType(field, true)); code_.IncrementIdentLevel(); diff --git a/src/idl_gen_swift.cpp b/src/idl_gen_swift.cpp index b73333b43ae..0c5bb57524f 100644 --- a/src/idl_gen_swift.cpp +++ b/src/idl_gen_swift.cpp @@ -442,7 +442,7 @@ class SwiftGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { const auto &field = **it; - if (field.deprecated) { continue; } + if (field.deprecated == FieldDef::kDeprecated) { continue; } code_.SetValue("OFFSET_NAME", namer_.Variable(field)); code_.SetValue("OFFSET_VALUE", NumToString(field.value.offset)); code_ += "case {{OFFSET_NAME}} = {{OFFSET_VALUE}}"; @@ -689,7 +689,7 @@ class SwiftGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { const auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; GenTableReaderFields(field); } } @@ -713,7 +713,9 @@ class SwiftGenerator : public BaseGenerator { !IsBool(field.value.type.base_type)) { code_ += GenReaderMainBody(optional) + GenOffset() + const_string + GenReader("VALUETYPE", "o") + " }"; - if (parser_.opts.mutable_buffer) code_ += GenMutate("o", GenOffset()); + if (field.deprecated != FieldDef::kDeprecatedReadOnly && + parser_.opts.mutable_buffer) + code_ += GenMutate("o", GenOffset()); return; } @@ -726,7 +728,9 @@ class SwiftGenerator : public BaseGenerator { code_ += GenOffset() + "return o == 0 ? {{CONSTANT}} : " + GenReader("VALUETYPE", "o") + " }"; - if (parser_.opts.mutable_buffer) code_ += GenMutate("o", GenOffset()); + if (field.deprecated != FieldDef::kDeprecatedReadOnly && + parser_.opts.mutable_buffer) + code_ += GenMutate("o", GenOffset()); return; } @@ -737,7 +741,8 @@ class SwiftGenerator : public BaseGenerator { code_ += GenReaderMainBody(optional) + "\\"; code_ += GenOffset() + "return o == 0 ? " + default_value + " : " + GenEnumConstructor("o") + "?? " + default_value + " }"; - if (parser_.opts.mutable_buffer && !IsUnion(field.value.type)) + if (field.deprecated != FieldDef::kDeprecatedReadOnly && + parser_.opts.mutable_buffer && !IsUnion(field.value.type)) code_ += GenMutate("o", GenOffset(), true); return; } @@ -831,7 +836,9 @@ class SwiftGenerator : public BaseGenerator { code_ += "{{ACCESS_TYPE}} var {{FIELDVAR}}: [{{VALUETYPE}}] { return " "{{ACCESS}}.getVector(at: {{TABLEOFFSET}}.{{OFFSET}}.v) ?? [] }"; - if (parser_.opts.mutable_buffer) code_ += GenMutateArray(); + if (field.deprecated != FieldDef::kDeprecatedReadOnly && + parser_.opts.mutable_buffer) + code_ += GenMutateArray(); GenUnsafeBufferPointer(field); return; } @@ -1062,7 +1069,7 @@ class SwiftGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { const auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; const auto offset = NumToString(field.value.offset); code_.SetValue("FIELDVAR", namer_.Variable(field)); @@ -1291,7 +1298,7 @@ class SwiftGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { const auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; const auto type = GenType(field.value.type); code_.SetValue("FIELDVAR", namer_.Variable(field)); @@ -1316,7 +1323,7 @@ class SwiftGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { const auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; BuildObjectAPIConstructorBody(field, struct_def.fixed, buffer_constructor, base_constructor); } diff --git a/src/idl_gen_ts.cpp b/src/idl_gen_ts.cpp index e170514fdae..e2bf5257649 100644 --- a/src/idl_gen_ts.cpp +++ b/src/idl_gen_ts.cpp @@ -1203,7 +1203,7 @@ class TsGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; const auto field_method = namer_.Method(field); const auto field_field = namer_.Field(field); @@ -1474,7 +1474,8 @@ class TsGenerator : public BaseGenerator { constructor_func += " public " + field_field + ": " + field_type + " = " + field_default_val; - if (!struct_def.fixed) { + if (field.deprecated != FieldDef::kDeprecatedReadOnly && + !struct_def.fixed) { if (!field_offset_decl.empty()) { pack_func_offset_decl += field_offset_decl + "\n"; } @@ -1495,7 +1496,8 @@ class TsGenerator : public BaseGenerator { if (std::next(it) != struct_def.fields.vec.end()) { constructor_func += ",\n"; - if (!struct_def.fixed && has_create) { + if (field.deprecated != FieldDef::kDeprecatedReadOnly && + !struct_def.fixed && has_create) { pack_func_create_call += ",\n "; } @@ -1503,7 +1505,8 @@ class TsGenerator : public BaseGenerator { unpack_to_func += "\n"; } else { constructor_func += "\n"; - if (!struct_def.fixed) { + if (field.deprecated != FieldDef::kDeprecatedReadOnly && + !struct_def.fixed) { pack_func_offset_decl += (pack_func_offset_decl.empty() ? "" : "\n"); pack_func_create_call += "\n "; } @@ -1605,7 +1608,7 @@ class TsGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { auto &field = **it; - if (field.deprecated) continue; + if (field.deprecated == FieldDef::kDeprecated) continue; std::string offset_prefix = ""; if (field.value.type.base_type == BASE_TYPE_ARRAY) { @@ -1882,8 +1885,9 @@ class TsGenerator : public BaseGenerator { code += "}\n\n"; // Adds the mutable scalar value to the output - if (IsScalar(field.value.type.base_type) && parser.opts.mutable_buffer && - !IsUnion(field.value.type)) { + if (IsScalar(field.value.type.base_type) && + field.deprecated != FieldDef::kDeprecatedReadOnly && + parser.opts.mutable_buffer && !IsUnion(field.value.type)) { std::string type = GenTypeName(imports, struct_def, field.value.type, true); diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index d01e18ef761..3297dfd707f 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -1020,7 +1020,10 @@ CheckedError Parser::ParseField(StructDef &struct_def) { field->doc_comment = dc; ECHECK(ParseMetaData(&field->attributes)); - field->deprecated = field->attributes.Lookup("deprecated") != nullptr; + field->deprecated = FieldDef::MakeFieldDeprecated( + field->attributes.Lookup("deprecated") != nullptr, + field->attributes.Lookup("deprecated_readonly") != nullptr); + auto hash_name = field->attributes.Lookup("hash"); if (hash_name) { switch ((IsVector(type)) ? type.element : type.base_type) { @@ -1280,7 +1283,7 @@ CheckedError Parser::ParseField(StructDef &struct_def) { } // if this field is a union that is deprecated, // the automatically added type field should be deprecated as well - if (field->deprecated) { typefield->deprecated = true; } + typefield->deprecated = field->deprecated; } EXPECT(';'); @@ -3171,7 +3174,8 @@ CheckedError Parser::ParseProtoFields(StructDef *struct_def, bool isextend, field->value.constant = val; } // "false" is default, no need to handle explicitly. } else if (key == "deprecated") { - field->deprecated = val == "true"; + field->deprecated = val == "true" ? FieldDef::kDeprecated + : FieldDef::kNotDeprecated; } if (!Is(',')) break; NEXT(); @@ -4049,8 +4053,9 @@ Offset FieldDef::Serialize(FlatBufferBuilder *builder, // Is uint64>max(int64) tested? IsInteger(value.type.base_type) ? StringToInt(value.constant.c_str()) : 0, // result may be platform-dependent if underlying is float (not double) - IsFloat(value.type.base_type) ? d : 0.0, deprecated, IsRequired(), key, - attr__, docs__, IsOptional(), static_cast(padding), offset64); + IsFloat(value.type.base_type) ? d : 0.0, deprecated, + deprecated == FieldDef::kDeprecatedReadOnly, IsRequired(), key, attr__, + docs__, IsOptional(), static_cast(padding), offset64); // TODO: value.constant is almost always "0", we could save quite a bit of // space by sharing it. Same for common values of value.type. } diff --git a/tests/arrays_test.bfbs b/tests/arrays_test.bfbs index 117630a16684ab5774cb61e2ff87d739496d49bb..c550ba09037709bfd8dab4d370d712e9837531df 100644 GIT binary patch delta 502 zcmXw#u}T9$5Qb-O?~-T|qQnCaHDD{?F;Y5S`h*OLFAo5|R)DF-Ek=VI)Ej1p~&Ih=QP?{sR@$DcETd3n6x%Ti8ah zw$jofoj<_B#$NC*sO#H&KrG(Q%wy)wySa9>74`B&R9mm@B2bbFftQ-7BV7UtKo)2* zQ4FyHaL|~|yo0C%ClUlm3;6uj`Xab4*;^o=f|s<@0ecJ-gOACWOXFyBQAT?2EhpzX zT5B^t#2RuJCPw?relx|Y!RK62UG|}$RbQNuHliaI`An^fbo>D_A#_#{BfzU_iju$c ztF;-o=?2Put9w6M#~lGD{oO~1kE$yYn?*Q65gs}^M9~>2NZPoUr9u=@Q!>FhwIG*yMx7!rs4IClHjlhu4Gd&_Kiwk{p>mty9wYQ;`Lao;Zg0gf(9RR910 diff --git a/tests/monster_test.afb b/tests/monster_test.afb index 3a7f988d9f4..96515a5279c 100644 --- a/tests/monster_test.afb +++ b/tests/monster_test.afb @@ -61,21 +61,21 @@ vector (reflection.Schema.enums): vector (reflection.Schema.objects): +0x007C | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of vector (# items) - +0x0080 | BC 31 00 00 | UOffset32 | 0x000031BC (12732) Loc: 0x323C | offset to table[0] + +0x0080 | DC 31 00 00 | UOffset32 | 0x000031DC (12764) Loc: 0x325C | offset to table[0] +0x0084 | 00 0D 00 00 | UOffset32 | 0x00000D00 (3328) Loc: 0x0D84 | offset to table[1] - +0x0088 | 6C 2E 00 00 | UOffset32 | 0x00002E6C (11884) Loc: 0x2EF4 | offset to table[2] - +0x008C | 38 2F 00 00 | UOffset32 | 0x00002F38 (12088) Loc: 0x2FC4 | offset to table[3] - +0x0090 | A4 30 00 00 | UOffset32 | 0x000030A4 (12452) Loc: 0x3134 | offset to table[4] - +0x0094 | 28 30 00 00 | UOffset32 | 0x00003028 (12328) Loc: 0x30BC | offset to table[5] - +0x0098 | 44 35 00 00 | UOffset32 | 0x00003544 (13636) Loc: 0x35DC | offset to table[6] - +0x009C | 44 34 00 00 | UOffset32 | 0x00003444 (13380) Loc: 0x34E0 | offset to table[7] + +0x0088 | 88 2E 00 00 | UOffset32 | 0x00002E88 (11912) Loc: 0x2F10 | offset to table[2] + +0x008C | 54 2F 00 00 | UOffset32 | 0x00002F54 (12116) Loc: 0x2FE0 | offset to table[3] + +0x0090 | C4 30 00 00 | UOffset32 | 0x000030C4 (12484) Loc: 0x3154 | offset to table[4] + +0x0094 | 48 30 00 00 | UOffset32 | 0x00003048 (12360) Loc: 0x30DC | offset to table[5] + +0x0098 | 64 35 00 00 | UOffset32 | 0x00003564 (13668) Loc: 0x35FC | offset to table[6] + +0x009C | 64 34 00 00 | UOffset32 | 0x00003464 (13412) Loc: 0x3500 | offset to table[7] +0x00A0 | 84 0A 00 00 | UOffset32 | 0x00000A84 (2692) Loc: 0x0B24 | offset to table[8] - +0x00A4 | 80 32 00 00 | UOffset32 | 0x00003280 (12928) Loc: 0x3324 | offset to table[9] - +0x00A8 | F4 35 00 00 | UOffset32 | 0x000035F4 (13812) Loc: 0x369C | offset to table[10] - +0x00AC | 24 36 00 00 | UOffset32 | 0x00003624 (13860) Loc: 0x36D0 | offset to table[11] - +0x00B0 | FC 36 00 00 | UOffset32 | 0x000036FC (14076) Loc: 0x37AC | offset to table[12] - +0x00B4 | A0 37 00 00 | UOffset32 | 0x000037A0 (14240) Loc: 0x3854 | offset to table[13] - +0x00B8 | 68 36 00 00 | UOffset32 | 0x00003668 (13928) Loc: 0x3720 | offset to table[14] + +0x00A4 | A0 32 00 00 | UOffset32 | 0x000032A0 (12960) Loc: 0x3344 | offset to table[9] + +0x00A8 | 14 36 00 00 | UOffset32 | 0x00003614 (13844) Loc: 0x36BC | offset to table[10] + +0x00AC | 44 36 00 00 | UOffset32 | 0x00003644 (13892) Loc: 0x36F0 | offset to table[11] + +0x00B0 | 1C 37 00 00 | UOffset32 | 0x0000371C (14108) Loc: 0x37CC | offset to table[12] + +0x00B4 | C0 37 00 00 | UOffset32 | 0x000037C0 (14272) Loc: 0x3874 | offset to table[13] + +0x00B8 | 88 36 00 00 | UOffset32 | 0x00003688 (13960) Loc: 0x3740 | offset to table[14] vector (reflection.Schema.fbs_files): +0x00BC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) @@ -84,33 +84,33 @@ vector (reflection.Schema.fbs_files): +0x00C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00CC | offset to table[2] table (reflection.SchemaFile): - +0x00CC | 04 C8 FF FF | SOffset32 | 0xFFFFC804 (-14332) Loc: 0x38C8 | offset to vtable - +0x00D0 | 14 36 00 00 | UOffset32 | 0x00003614 (13844) Loc: 0x36E4 | offset to field `filename` (string) + +0x00CC | E4 C7 FF FF | SOffset32 | 0xFFFFC7E4 (-14364) Loc: 0x38E8 | offset to vtable + +0x00D0 | 34 36 00 00 | UOffset32 | 0x00003634 (13876) Loc: 0x3704 | offset to field `filename` (string) +0x00D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00D8 | offset to field `included_filenames` (vector) vector (reflection.SchemaFile.included_filenames): +0x00D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x00DC | 58 36 00 00 | UOffset32 | 0x00003658 (13912) Loc: 0x3734 | offset to string[0] + +0x00DC | 78 36 00 00 | UOffset32 | 0x00003678 (13944) Loc: 0x3754 | offset to string[0] table (reflection.SchemaFile): - +0x00E0 | 18 C8 FF FF | SOffset32 | 0xFFFFC818 (-14312) Loc: 0x38C8 | offset to vtable - +0x00E4 | 8C 37 00 00 | UOffset32 | 0x0000378C (14220) Loc: 0x3870 | offset to field `filename` (string) + +0x00E0 | F8 C7 FF FF | SOffset32 | 0xFFFFC7F8 (-14344) Loc: 0x38E8 | offset to vtable + +0x00E4 | AC 37 00 00 | UOffset32 | 0x000037AC (14252) Loc: 0x3890 | offset to field `filename` (string) +0x00E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00EC | offset to field `included_filenames` (vector) vector (reflection.SchemaFile.included_filenames): +0x00EC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x00F0 | 44 36 00 00 | UOffset32 | 0x00003644 (13892) Loc: 0x3734 | offset to string[0] - +0x00F4 | 7C 37 00 00 | UOffset32 | 0x0000377C (14204) Loc: 0x3870 | offset to string[1] + +0x00F0 | 64 36 00 00 | UOffset32 | 0x00003664 (13924) Loc: 0x3754 | offset to string[0] + +0x00F4 | 9C 37 00 00 | UOffset32 | 0x0000379C (14236) Loc: 0x3890 | offset to string[1] table (reflection.SchemaFile): - +0x00F8 | 30 C8 FF FF | SOffset32 | 0xFFFFC830 (-14288) Loc: 0x38C8 | offset to vtable - +0x00FC | 38 36 00 00 | UOffset32 | 0x00003638 (13880) Loc: 0x3734 | offset to field `filename` (string) + +0x00F8 | 10 C8 FF FF | SOffset32 | 0xFFFFC810 (-14320) Loc: 0x38E8 | offset to vtable + +0x00FC | 58 36 00 00 | UOffset32 | 0x00003658 (13912) Loc: 0x3754 | offset to field `filename` (string) +0x0100 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to field `included_filenames` (vector) vector (reflection.SchemaFile.included_filenames): +0x0104 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x0108 | 2C 36 00 00 | UOffset32 | 0x0000362C (13868) Loc: 0x3734 | offset to string[0] - +0x010C | 64 37 00 00 | UOffset32 | 0x00003764 (14180) Loc: 0x3870 | offset to string[1] + +0x0108 | 4C 36 00 00 | UOffset32 | 0x0000364C (13900) Loc: 0x3754 | offset to string[0] + +0x010C | 84 37 00 00 | UOffset32 | 0x00003784 (14212) Loc: 0x3890 | offset to string[1] padding: +0x0110 | 00 00 | uint8_t[2] | .. | padding @@ -128,7 +128,7 @@ table (reflection.Service): +0x0120 | 0E 00 00 00 | SOffset32 | 0x0000000E (14) Loc: 0x0112 | offset to vtable +0x0124 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0144 | offset to field `name` (string) +0x0128 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x0130 | offset to field `calls` (vector) - +0x012C | B8 35 00 00 | UOffset32 | 0x000035B8 (13752) Loc: 0x36E4 | offset to field `declaration_file` (string) + +0x012C | D8 35 00 00 | UOffset32 | 0x000035D8 (13784) Loc: 0x3704 | offset to field `declaration_file` (string) vector (reflection.Service.calls): +0x0130 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) @@ -152,7 +152,7 @@ table (reflection.RPCCall): +0x0168 | D0 FE FF FF | SOffset32 | 0xFFFFFED0 (-304) Loc: 0x0298 | offset to vtable +0x016C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x01AC | offset to field `name` (string) +0x0170 | 14 0C 00 00 | UOffset32 | 0x00000C14 (3092) Loc: 0x0D84 | offset to field `request` (table) - +0x0174 | 50 2E 00 00 | UOffset32 | 0x00002E50 (11856) Loc: 0x2FC4 | offset to field `response` (table) + +0x0174 | 6C 2E 00 00 | UOffset32 | 0x00002E6C (11884) Loc: 0x2FE0 | offset to field `response` (table) +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to field `attributes` (vector) vector (reflection.RPCCall.attributes): @@ -160,7 +160,7 @@ vector (reflection.RPCCall.attributes): +0x0180 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0184 | offset to table[0] table (reflection.KeyValue): - +0x0184 | BC C8 FF FF | SOffset32 | 0xFFFFC8BC (-14148) Loc: 0x38C8 | offset to vtable + +0x0184 | 9C C8 FF FF | SOffset32 | 0xFFFFC89C (-14180) Loc: 0x38E8 | offset to vtable +0x0188 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x019C | offset to field `key` (string) +0x018C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0190 | offset to field `value` (string) @@ -192,7 +192,7 @@ table (reflection.RPCCall): +0x01C4 | 2C FF FF FF | SOffset32 | 0xFFFFFF2C (-212) Loc: 0x0298 | offset to vtable +0x01C8 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x0208 | offset to field `name` (string) +0x01CC | B8 0B 00 00 | UOffset32 | 0x00000BB8 (3000) Loc: 0x0D84 | offset to field `request` (table) - +0x01D0 | F4 2D 00 00 | UOffset32 | 0x00002DF4 (11764) Loc: 0x2FC4 | offset to field `response` (table) + +0x01D0 | 10 2E 00 00 | UOffset32 | 0x00002E10 (11792) Loc: 0x2FE0 | offset to field `response` (table) +0x01D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x01D8 | offset to field `attributes` (vector) vector (reflection.RPCCall.attributes): @@ -200,7 +200,7 @@ vector (reflection.RPCCall.attributes): +0x01DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x01E0 | offset to table[0] table (reflection.KeyValue): - +0x01E0 | 18 C9 FF FF | SOffset32 | 0xFFFFC918 (-14056) Loc: 0x38C8 | offset to vtable + +0x01E0 | F8 C8 FF FF | SOffset32 | 0xFFFFC8F8 (-14088) Loc: 0x38E8 | offset to vtable +0x01E4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x01F8 | offset to field `key` (string) +0x01E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x01EC | offset to field `value` (string) @@ -227,7 +227,7 @@ string (reflection.RPCCall.name): table (reflection.RPCCall): +0x021C | 84 FF FF FF | SOffset32 | 0xFFFFFF84 (-124) Loc: 0x0298 | offset to vtable +0x0220 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: 0x0288 | offset to field `name` (string) - +0x0224 | A0 2D 00 00 | UOffset32 | 0x00002DA0 (11680) Loc: 0x2FC4 | offset to field `request` (table) + +0x0224 | BC 2D 00 00 | UOffset32 | 0x00002DBC (11708) Loc: 0x2FE0 | offset to field `request` (table) +0x0228 | 5C 0B 00 00 | UOffset32 | 0x00000B5C (2908) Loc: 0x0D84 | offset to field `response` (table) +0x022C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0230 | offset to field `attributes` (vector) @@ -237,7 +237,7 @@ vector (reflection.RPCCall.attributes): +0x0238 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x023C | offset to table[1] table (reflection.KeyValue): - +0x023C | 74 C9 FF FF | SOffset32 | 0xFFFFC974 (-13964) Loc: 0x38C8 | offset to vtable + +0x023C | 54 C9 FF FF | SOffset32 | 0xFFFFC954 (-13996) Loc: 0x38E8 | offset to vtable +0x0240 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0254 | offset to field `key` (string) +0x0244 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0248 | offset to field `value` (string) @@ -256,7 +256,7 @@ padding: +0x0262 | 00 00 | uint8_t[2] | .. | padding table (reflection.KeyValue): - +0x0264 | 9C C9 FF FF | SOffset32 | 0xFFFFC99C (-13924) Loc: 0x38C8 | offset to vtable + +0x0264 | 7C C9 FF FF | SOffset32 | 0xFFFFC97C (-13956) Loc: 0x38E8 | offset to vtable +0x0268 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0278 | offset to field `key` (string) +0x026C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0270 | offset to field `value` (string) @@ -294,7 +294,7 @@ table (reflection.RPCCall): +0x02A4 | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: 0x0298 | offset to vtable +0x02A8 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x02E8 | offset to field `name` (string) +0x02AC | D8 0A 00 00 | UOffset32 | 0x00000AD8 (2776) Loc: 0x0D84 | offset to field `request` (table) - +0x02B0 | 14 2D 00 00 | UOffset32 | 0x00002D14 (11540) Loc: 0x2FC4 | offset to field `response` (table) + +0x02B0 | 30 2D 00 00 | UOffset32 | 0x00002D30 (11568) Loc: 0x2FE0 | offset to field `response` (table) +0x02B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x02B8 | offset to field `attributes` (vector) vector (reflection.RPCCall.attributes): @@ -302,7 +302,7 @@ vector (reflection.RPCCall.attributes): +0x02BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x02C0 | offset to table[0] table (reflection.KeyValue): - +0x02C0 | F8 C9 FF FF | SOffset32 | 0xFFFFC9F8 (-13832) Loc: 0x38C8 | offset to vtable + +0x02C0 | D8 C9 FF FF | SOffset32 | 0xFFFFC9D8 (-13864) Loc: 0x38E8 | offset to vtable +0x02C4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x02D8 | offset to field `key` (string) +0x02C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x02CC | offset to field `value` (string) @@ -338,10 +338,10 @@ table (reflection.Enum): +0x02FC | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x0334 | offset to field `name` (string) +0x0300 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0320 | offset to field `values` (vector) +0x0304 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x030C | offset to field `underlying_type` (table) - +0x0308 | DC 33 00 00 | UOffset32 | 0x000033DC (13276) Loc: 0x36E4 | offset to field `declaration_file` (string) + +0x0308 | FC 33 00 00 | UOffset32 | 0x000033FC (13308) Loc: 0x3704 | offset to field `declaration_file` (string) table (reflection.Type): - +0x030C | 60 CD FF FF | SOffset32 | 0xFFFFCD60 (-12960) Loc: 0x35AC | offset to vtable + +0x030C | 40 CD FF FF | SOffset32 | 0xFFFFCD40 (-12992) Loc: 0x35CC | offset to vtable +0x0310 | 00 00 00 | uint8_t[3] | ... | padding +0x0313 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) +0x0314 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) @@ -372,7 +372,7 @@ table (reflection.EnumVal): +0x0370 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x0374 | 5C CB FF FF | SOffset32 | 0xFFFFCB5C (-13476) Loc: 0x3818 | offset to vtable + +0x0374 | 3C CB FF FF | SOffset32 | 0xFFFFCB3C (-13508) Loc: 0x3838 | offset to vtable +0x0378 | 00 00 00 | uint8_t[3] | ... | padding +0x037B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) +0x037C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) @@ -391,7 +391,7 @@ table (reflection.EnumVal): +0x03A0 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x03A4 | 8C CB FF FF | SOffset32 | 0xFFFFCB8C (-13428) Loc: 0x3818 | offset to vtable + +0x03A4 | 6C CB FF FF | SOffset32 | 0xFFFFCB6C (-13460) Loc: 0x3838 | offset to vtable +0x03A8 | 00 00 00 | uint8_t[3] | ... | padding +0x03AB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) +0x03AC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) @@ -410,7 +410,7 @@ table (reflection.EnumVal): +0x03D0 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x03D4 | BC CB FF FF | SOffset32 | 0xFFFFCBBC (-13380) Loc: 0x3818 | offset to vtable + +0x03D4 | 9C CB FF FF | SOffset32 | 0xFFFFCB9C (-13412) Loc: 0x3838 | offset to vtable +0x03D8 | 00 00 00 | uint8_t[3] | ... | padding +0x03DB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) +0x03DC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) @@ -446,10 +446,10 @@ table (reflection.Enum): +0x0418 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x0450 | offset to field `name` (string) +0x041C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x043C | offset to field `values` (vector) +0x0420 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x0428 | offset to field `underlying_type` (table) - +0x0424 | C0 32 00 00 | UOffset32 | 0x000032C0 (12992) Loc: 0x36E4 | offset to field `declaration_file` (string) + +0x0424 | E0 32 00 00 | UOffset32 | 0x000032E0 (13024) Loc: 0x3704 | offset to field `declaration_file` (string) table (reflection.Type): - +0x0428 | 7C CE FF FF | SOffset32 | 0xFFFFCE7C (-12676) Loc: 0x35AC | offset to vtable + +0x0428 | 5C CE FF FF | SOffset32 | 0xFFFFCE5C (-12708) Loc: 0x35CC | offset to vtable +0x042C | 00 00 00 | uint8_t[3] | ... | padding +0x042F | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) +0x0430 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) @@ -479,7 +479,7 @@ table (reflection.EnumVal): +0x0488 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x048C | 74 CC FF FF | SOffset32 | 0xFFFFCC74 (-13196) Loc: 0x3818 | offset to vtable + +0x048C | 54 CC FF FF | SOffset32 | 0xFFFFCC54 (-13228) Loc: 0x3838 | offset to vtable +0x0490 | 00 00 00 | uint8_t[3] | ... | padding +0x0493 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) +0x0494 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | table field `index` (Int) @@ -498,7 +498,7 @@ table (reflection.EnumVal): +0x04B8 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x04BC | A4 CC FF FF | SOffset32 | 0xFFFFCCA4 (-13148) Loc: 0x3818 | offset to vtable + +0x04BC | 84 CC FF FF | SOffset32 | 0xFFFFCC84 (-13180) Loc: 0x3838 | offset to vtable +0x04C0 | 00 00 00 | uint8_t[3] | ... | padding +0x04C3 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) +0x04C4 | 07 00 00 00 | uint32_t | 0x00000007 (7) | table field `index` (Int) @@ -516,7 +516,7 @@ table (reflection.EnumVal): +0x04E0 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) table (reflection.Type): - +0x04E8 | D0 CC FF FF | SOffset32 | 0xFFFFCCD0 (-13104) Loc: 0x3818 | offset to vtable + +0x04E8 | B0 CC FF FF | SOffset32 | 0xFFFFCCB0 (-13136) Loc: 0x3838 | offset to vtable +0x04EC | 00 00 00 | uint8_t[3] | ... | padding +0x04EF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) +0x04F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) @@ -563,10 +563,10 @@ table (reflection.Enum): +0x053C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x0574 | offset to field `name` (string) +0x0540 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0560 | offset to field `values` (vector) +0x0544 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x054C | offset to field `underlying_type` (table) - +0x0548 | 9C 31 00 00 | UOffset32 | 0x0000319C (12700) Loc: 0x36E4 | offset to field `declaration_file` (string) + +0x0548 | BC 31 00 00 | UOffset32 | 0x000031BC (12732) Loc: 0x3704 | offset to field `declaration_file` (string) table (reflection.Type): - +0x054C | A0 CF FF FF | SOffset32 | 0xFFFFCFA0 (-12384) Loc: 0x35AC | offset to vtable + +0x054C | 80 CF FF FF | SOffset32 | 0xFFFFCF80 (-12416) Loc: 0x35CC | offset to vtable +0x0550 | 00 00 00 | uint8_t[3] | ... | padding +0x0553 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) +0x0554 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) @@ -594,7 +594,7 @@ table (reflection.EnumVal): +0x0598 | 03 00 00 00 00 00 00 00 | int64_t | 0x0000000000000003 (3) | table field `value` (Long) table (reflection.Type): - +0x05A0 | 88 CD FF FF | SOffset32 | 0xFFFFCD88 (-12920) Loc: 0x3818 | offset to vtable + +0x05A0 | 68 CD FF FF | SOffset32 | 0xFFFFCD68 (-12952) Loc: 0x3838 | offset to vtable +0x05A4 | 00 00 00 | uint8_t[3] | ... | padding +0x05A7 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) +0x05A8 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | table field `index` (Int) @@ -614,7 +614,7 @@ table (reflection.EnumVal): +0x05D8 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) table (reflection.Type): - +0x05E0 | C8 CD FF FF | SOffset32 | 0xFFFFCDC8 (-12856) Loc: 0x3818 | offset to vtable + +0x05E0 | A8 CD FF FF | SOffset32 | 0xFFFFCDA8 (-12888) Loc: 0x3838 | offset to vtable +0x05E4 | 00 00 00 | uint8_t[3] | ... | padding +0x05E7 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) +0x05E8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | table field `index` (Int) @@ -634,7 +634,7 @@ table (reflection.EnumVal): +0x0618 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) table (reflection.Type): - +0x0620 | 08 CE FF FF | SOffset32 | 0xFFFFCE08 (-12792) Loc: 0x3818 | offset to vtable + +0x0620 | E8 CD FF FF | SOffset32 | 0xFFFFCDE8 (-12824) Loc: 0x3838 | offset to vtable +0x0624 | 00 00 00 | uint8_t[3] | ... | padding +0x0627 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) +0x0628 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) @@ -677,14 +677,14 @@ table (reflection.Enum): +0x0678 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x06C8 | offset to field `values` (vector) +0x067C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x06B4 | offset to field `underlying_type` (table) +0x0680 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x0688 | offset to field `attributes` (vector) - +0x0684 | 60 30 00 00 | UOffset32 | 0x00003060 (12384) Loc: 0x36E4 | offset to field `declaration_file` (string) + +0x0684 | 80 30 00 00 | UOffset32 | 0x00003080 (12416) Loc: 0x3704 | offset to field `declaration_file` (string) vector (reflection.Enum.attributes): +0x0688 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) +0x068C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0690 | offset to table[0] table (reflection.KeyValue): - +0x0690 | C8 CD FF FF | SOffset32 | 0xFFFFCDC8 (-12856) Loc: 0x38C8 | offset to vtable + +0x0690 | A8 CD FF FF | SOffset32 | 0xFFFFCDA8 (-12888) Loc: 0x38E8 | offset to vtable +0x0694 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x06A4 | offset to field `key` (string) +0x0698 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x069C | offset to field `value` (string) @@ -706,7 +706,7 @@ padding: +0x06B2 | 00 00 | uint8_t[2] | .. | padding table (reflection.Type): - +0x06B4 | 08 D1 FF FF | SOffset32 | 0xFFFFD108 (-12024) Loc: 0x35AC | offset to vtable + +0x06B4 | E8 D0 FF FF | SOffset32 | 0xFFFFD0E8 (-12056) Loc: 0x35CC | offset to vtable +0x06B8 | 00 00 00 | uint8_t[3] | ... | padding +0x06BB | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) +0x06BC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) @@ -781,10 +781,10 @@ table (reflection.Enum): +0x0784 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x07BC | offset to field `name` (string) +0x0788 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x07A8 | offset to field `values` (vector) +0x078C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x0794 | offset to field `underlying_type` (table) - +0x0790 | 54 2F 00 00 | UOffset32 | 0x00002F54 (12116) Loc: 0x36E4 | offset to field `declaration_file` (string) + +0x0790 | 74 2F 00 00 | UOffset32 | 0x00002F74 (12148) Loc: 0x3704 | offset to field `declaration_file` (string) table (reflection.Type): - +0x0794 | E8 D1 FF FF | SOffset32 | 0xFFFFD1E8 (-11800) Loc: 0x35AC | offset to vtable + +0x0794 | C8 D1 FF FF | SOffset32 | 0xFFFFD1C8 (-11832) Loc: 0x35CC | offset to vtable +0x0798 | 00 00 00 | uint8_t[3] | ... | padding +0x079B | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) +0x079C | 05 00 00 00 | uint32_t | 0x00000005 (5) | table field `index` (Int) @@ -902,7 +902,7 @@ table (reflection.Enum): +0x08A8 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: 0x0918 | offset to field `underlying_type` (table) +0x08AC | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x08EC | offset to field `attributes` (vector) +0x08B0 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x08B8 | offset to field `documentation` (vector) - +0x08B4 | 30 2E 00 00 | UOffset32 | 0x00002E30 (11824) Loc: 0x36E4 | offset to field `declaration_file` (string) + +0x08B4 | 50 2E 00 00 | UOffset32 | 0x00002E50 (11856) Loc: 0x3704 | offset to field `declaration_file` (string) vector (reflection.Enum.documentation): +0x08B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) @@ -922,7 +922,7 @@ vector (reflection.Enum.attributes): +0x08F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x08F4 | offset to table[0] table (reflection.KeyValue): - +0x08F4 | 2C D0 FF FF | SOffset32 | 0xFFFFD02C (-12244) Loc: 0x38C8 | offset to vtable + +0x08F4 | 0C D0 FF FF | SOffset32 | 0xFFFFD00C (-12276) Loc: 0x38E8 | offset to vtable +0x08F8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0908 | offset to field `key` (string) +0x08FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0900 | offset to field `value` (string) @@ -944,7 +944,7 @@ padding: +0x0916 | 00 00 | uint8_t[2] | .. | padding table (reflection.Type): - +0x0918 | 6C D3 FF FF | SOffset32 | 0xFFFFD36C (-11412) Loc: 0x35AC | offset to vtable + +0x0918 | 4C D3 FF FF | SOffset32 | 0xFFFFD34C (-11444) Loc: 0x35CC | offset to vtable +0x091C | 00 00 00 | uint8_t[3] | ... | padding +0x091F | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) +0x0920 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) @@ -1092,10 +1092,10 @@ table (reflection.Enum): +0x0A8C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0AB8 | offset to field `name` (string) +0x0A90 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0AB0 | offset to field `values` (vector) +0x0A94 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x0A9C | offset to field `underlying_type` (table) - +0x0A98 | D8 2D 00 00 | UOffset32 | 0x00002DD8 (11736) Loc: 0x3870 | offset to field `declaration_file` (string) + +0x0A98 | F8 2D 00 00 | UOffset32 | 0x00002DF8 (11768) Loc: 0x3890 | offset to field `declaration_file` (string) table (reflection.Type): - +0x0A9C | F0 D4 FF FF | SOffset32 | 0xFFFFD4F0 (-11024) Loc: 0x35AC | offset to vtable + +0x0A9C | D0 D4 FF FF | SOffset32 | 0xFFFFD4D0 (-11056) Loc: 0x35CC | offset to vtable +0x0AA0 | 00 00 00 | uint8_t[3] | ... | padding +0x0AA3 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) +0x0AA4 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) @@ -1153,11 +1153,11 @@ string (reflection.EnumVal.name): +0x0B22 | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x0B24 | 8C D3 FF FF | SOffset32 | 0xFFFFD38C (-11380) Loc: 0x3798 | offset to vtable + +0x0B24 | 6C D3 FF FF | SOffset32 | 0xFFFFD36C (-11412) Loc: 0x37B8 | offset to vtable +0x0B28 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0B6C | offset to field `name` (string) +0x0B2C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x0B38 | offset to field `fields` (vector) +0x0B30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x0B34 | B0 2B 00 00 | UOffset32 | 0x00002BB0 (11184) Loc: 0x36E4 | offset to field `declaration_file` (string) + +0x0B34 | D0 2B 00 00 | UOffset32 | 0x00002BD0 (11216) Loc: 0x3704 | offset to field `declaration_file` (string) vector (reflection.Object.fields): +0x0B38 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of vector (# items) @@ -1183,7 +1183,7 @@ string (reflection.Object.name): +0x0B8A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0B8C | DC D9 FF FF | SOffset32 | 0xFFFFD9DC (-9764) Loc: 0x31B0 | offset to vtable + +0x0B8C | BE D9 FF FF | SOffset32 | 0xFFFFD9BE (-9794) Loc: 0x31CE | offset to vtable +0x0B90 | 00 00 00 | uint8_t[3] | ... | padding +0x0B93 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) +0x0B94 | 0B 00 | uint16_t | 0x000B (11) | table field `id` (UShort) @@ -1192,7 +1192,7 @@ table (reflection.Field): +0x0B9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0BA0 | offset to field `type` (table) table (reflection.Type): - +0x0BA0 | 60 DF FF FF | SOffset32 | 0xFFFFDF60 (-8352) Loc: 0x2C40 | offset to vtable + +0x0BA0 | 50 DF FF FF | SOffset32 | 0xFFFFDF50 (-8368) Loc: 0x2C50 | offset to vtable +0x0BA4 | 00 00 | uint8_t[2] | .. | padding +0x0BA6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) +0x0BA7 | 0C | uint8_t | 0x0C (12) | table field `element` (Byte) @@ -1207,7 +1207,7 @@ padding: +0x0BB5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x0BB8 | 08 DA FF FF | SOffset32 | 0xFFFFDA08 (-9720) Loc: 0x31B0 | offset to vtable + +0x0BB8 | EA D9 FF FF | SOffset32 | 0xFFFFD9EA (-9750) Loc: 0x31CE | offset to vtable +0x0BBC | 00 00 00 | uint8_t[3] | ... | padding +0x0BBF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) +0x0BC0 | 0A 00 | uint16_t | 0x000A (10) | table field `id` (UShort) @@ -1216,7 +1216,7 @@ table (reflection.Field): +0x0BC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0BCC | offset to field `type` (table) table (reflection.Type): - +0x0BCC | 8C DF FF FF | SOffset32 | 0xFFFFDF8C (-8308) Loc: 0x2C40 | offset to vtable + +0x0BCC | 7C DF FF FF | SOffset32 | 0xFFFFDF7C (-8324) Loc: 0x2C50 | offset to vtable +0x0BD0 | 00 00 | uint8_t[2] | .. | padding +0x0BD2 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) +0x0BD3 | 03 | uint8_t | 0x03 (3) | table field `element` (Byte) @@ -1228,14 +1228,14 @@ string (reflection.Field.name): +0x0BDE | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0BE0 | 64 D7 FF FF | SOffset32 | 0xFFFFD764 (-10396) Loc: 0x347C | offset to vtable + +0x0BE0 | 44 D7 FF FF | SOffset32 | 0xFFFFD744 (-10428) Loc: 0x349C | offset to vtable +0x0BE4 | 09 00 | uint16_t | 0x0009 (9) | table field `id` (UShort) +0x0BE6 | 16 00 | uint16_t | 0x0016 (22) | table field `offset` (UShort) +0x0BE8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x0C00 | offset to field `name` (string) +0x0BEC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0BF0 | offset to field `type` (table) table (reflection.Type): - +0x0BF0 | 7C D5 FF FF | SOffset32 | 0xFFFFD57C (-10884) Loc: 0x3674 | offset to vtable + +0x0BF0 | 5C D5 FF FF | SOffset32 | 0xFFFFD55C (-10916) Loc: 0x3694 | offset to vtable +0x0BF4 | 00 00 00 | uint8_t[3] | ... | padding +0x0BF7 | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) +0x0BF8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) @@ -1247,14 +1247,14 @@ string (reflection.Field.name): +0x0C07 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0C08 | 8C D7 FF FF | SOffset32 | 0xFFFFD78C (-10356) Loc: 0x347C | offset to vtable + +0x0C08 | 6C D7 FF FF | SOffset32 | 0xFFFFD76C (-10388) Loc: 0x349C | offset to vtable +0x0C0C | 08 00 | uint16_t | 0x0008 (8) | table field `id` (UShort) +0x0C0E | 14 00 | uint16_t | 0x0014 (20) | table field `offset` (UShort) +0x0C10 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0C24 | offset to field `name` (string) +0x0C14 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0C18 | offset to field `type` (table) table (reflection.Type): - +0x0C18 | 3C D3 FF FF | SOffset32 | 0xFFFFD33C (-11460) Loc: 0x38DC | offset to vtable + +0x0C18 | 1C D3 FF FF | SOffset32 | 0xFFFFD31C (-11492) Loc: 0x38FC | offset to vtable +0x0C1C | 00 00 00 | uint8_t[3] | ... | padding +0x0C1F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) +0x0C20 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) @@ -1265,14 +1265,14 @@ string (reflection.Field.name): +0x0C2B | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0C2C | B0 D7 FF FF | SOffset32 | 0xFFFFD7B0 (-10320) Loc: 0x347C | offset to vtable + +0x0C2C | 90 D7 FF FF | SOffset32 | 0xFFFFD790 (-10352) Loc: 0x349C | offset to vtable +0x0C30 | 07 00 | uint16_t | 0x0007 (7) | table field `id` (UShort) +0x0C32 | 12 00 | uint16_t | 0x0012 (18) | table field `offset` (UShort) +0x0C34 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x0C4C | offset to field `name` (string) +0x0C38 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0C3C | offset to field `type` (table) table (reflection.Type): - +0x0C3C | C8 D5 FF FF | SOffset32 | 0xFFFFD5C8 (-10808) Loc: 0x3674 | offset to vtable + +0x0C3C | A8 D5 FF FF | SOffset32 | 0xFFFFD5A8 (-10840) Loc: 0x3694 | offset to vtable +0x0C40 | 00 00 00 | uint8_t[3] | ... | padding +0x0C43 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) +0x0C44 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) @@ -1284,14 +1284,14 @@ string (reflection.Field.name): +0x0C53 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0C54 | D8 D7 FF FF | SOffset32 | 0xFFFFD7D8 (-10280) Loc: 0x347C | offset to vtable + +0x0C54 | B8 D7 FF FF | SOffset32 | 0xFFFFD7B8 (-10312) Loc: 0x349C | offset to vtable +0x0C58 | 06 00 | uint16_t | 0x0006 (6) | table field `id` (UShort) +0x0C5A | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) +0x0C5C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x0C74 | offset to field `name` (string) +0x0C60 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0C64 | offset to field `type` (table) table (reflection.Type): - +0x0C64 | F0 D5 FF FF | SOffset32 | 0xFFFFD5F0 (-10768) Loc: 0x3674 | offset to vtable + +0x0C64 | D0 D5 FF FF | SOffset32 | 0xFFFFD5D0 (-10800) Loc: 0x3694 | offset to vtable +0x0C68 | 00 00 00 | uint8_t[3] | ... | padding +0x0C6B | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) +0x0C6C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) @@ -1303,14 +1303,14 @@ string (reflection.Field.name): +0x0C7B | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0C7C | 00 D8 FF FF | SOffset32 | 0xFFFFD800 (-10240) Loc: 0x347C | offset to vtable + +0x0C7C | E0 D7 FF FF | SOffset32 | 0xFFFFD7E0 (-10272) Loc: 0x349C | offset to vtable +0x0C80 | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) +0x0C82 | 0E 00 | uint16_t | 0x000E (14) | table field `offset` (UShort) +0x0C84 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0C98 | offset to field `name` (string) +0x0C88 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0C8C | offset to field `type` (table) table (reflection.Type): - +0x0C8C | B0 D3 FF FF | SOffset32 | 0xFFFFD3B0 (-11344) Loc: 0x38DC | offset to vtable + +0x0C8C | 90 D3 FF FF | SOffset32 | 0xFFFFD390 (-11376) Loc: 0x38FC | offset to vtable +0x0C90 | 00 00 00 | uint8_t[3] | ... | padding +0x0C93 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) +0x0C94 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) @@ -1321,14 +1321,14 @@ string (reflection.Field.name): +0x0C9F | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0CA0 | 24 D8 FF FF | SOffset32 | 0xFFFFD824 (-10204) Loc: 0x347C | offset to vtable + +0x0CA0 | 04 D8 FF FF | SOffset32 | 0xFFFFD804 (-10236) Loc: 0x349C | offset to vtable +0x0CA4 | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) +0x0CA6 | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) +0x0CA8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0CBC | offset to field `name` (string) +0x0CAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0CB0 | offset to field `type` (table) table (reflection.Type): - +0x0CB0 | D4 D3 FF FF | SOffset32 | 0xFFFFD3D4 (-11308) Loc: 0x38DC | offset to vtable + +0x0CB0 | B4 D3 FF FF | SOffset32 | 0xFFFFD3B4 (-11340) Loc: 0x38FC | offset to vtable +0x0CB4 | 00 00 00 | uint8_t[3] | ... | padding +0x0CB7 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) +0x0CB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) @@ -1339,14 +1339,14 @@ string (reflection.Field.name): +0x0CC3 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0CC4 | 48 D8 FF FF | SOffset32 | 0xFFFFD848 (-10168) Loc: 0x347C | offset to vtable + +0x0CC4 | 28 D8 FF FF | SOffset32 | 0xFFFFD828 (-10200) Loc: 0x349C | offset to vtable +0x0CC8 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) +0x0CCA | 0A 00 | uint16_t | 0x000A (10) | table field `offset` (UShort) +0x0CCC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x0CE4 | offset to field `name` (string) +0x0CD0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0CD4 | offset to field `type` (table) table (reflection.Type): - +0x0CD4 | 60 D6 FF FF | SOffset32 | 0xFFFFD660 (-10656) Loc: 0x3674 | offset to vtable + +0x0CD4 | 40 D6 FF FF | SOffset32 | 0xFFFFD640 (-10688) Loc: 0x3694 | offset to vtable +0x0CD8 | 00 00 00 | uint8_t[3] | ... | padding +0x0CDB | 06 | uint8_t | 0x06 (6) | table field `base_type` (Byte) +0x0CDC | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) @@ -1358,14 +1358,14 @@ string (reflection.Field.name): +0x0CEB | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0CEC | 70 D8 FF FF | SOffset32 | 0xFFFFD870 (-10128) Loc: 0x347C | offset to vtable + +0x0CEC | 50 D8 FF FF | SOffset32 | 0xFFFFD850 (-10160) Loc: 0x349C | offset to vtable +0x0CF0 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) +0x0CF2 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) +0x0CF4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x0D0C | offset to field `name` (string) +0x0CF8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0CFC | offset to field `type` (table) table (reflection.Type): - +0x0CFC | 88 D6 FF FF | SOffset32 | 0xFFFFD688 (-10616) Loc: 0x3674 | offset to vtable + +0x0CFC | 68 D6 FF FF | SOffset32 | 0xFFFFD668 (-10648) Loc: 0x3694 | offset to vtable +0x0D00 | 00 00 00 | uint8_t[3] | ... | padding +0x0D03 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) +0x0D04 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) @@ -1377,14 +1377,14 @@ string (reflection.Field.name): +0x0D13 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0D14 | 98 D8 FF FF | SOffset32 | 0xFFFFD898 (-10088) Loc: 0x347C | offset to vtable + +0x0D14 | 78 D8 FF FF | SOffset32 | 0xFFFFD878 (-10120) Loc: 0x349C | offset to vtable +0x0D18 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) +0x0D1A | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) +0x0D1C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x0D34 | offset to field `name` (string) +0x0D20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0D24 | offset to field `type` (table) table (reflection.Type): - +0x0D24 | B0 D6 FF FF | SOffset32 | 0xFFFFD6B0 (-10576) Loc: 0x3674 | offset to vtable + +0x0D24 | 90 D6 FF FF | SOffset32 | 0xFFFFD690 (-10608) Loc: 0x3694 | offset to vtable +0x0D28 | 00 00 00 | uint8_t[3] | ... | padding +0x0D2B | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) +0x0D2C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) @@ -1411,7 +1411,7 @@ table (reflection.Field): +0x0D54 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0D58 | offset to field `type` (table) table (reflection.Type): - +0x0D58 | E4 D6 FF FF | SOffset32 | 0xFFFFD6E4 (-10524) Loc: 0x3674 | offset to vtable + +0x0D58 | C4 D6 FF FF | SOffset32 | 0xFFFFD6C4 (-10556) Loc: 0x3694 | offset to vtable +0x0D5C | 00 00 00 | uint8_t[3] | ... | padding +0x0D5F | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) +0x0D60 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) @@ -1440,7 +1440,7 @@ table (reflection.Object): +0x0D8C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x0DDC | offset to field `fields` (vector) +0x0D90 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) +0x0D94 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x0D9C | offset to field `documentation` (vector) - +0x0D98 | 4C 29 00 00 | UOffset32 | 0x0000294C (10572) Loc: 0x36E4 | offset to field `declaration_file` (string) + +0x0D98 | 6C 29 00 00 | UOffset32 | 0x0000296C (10604) Loc: 0x3704 | offset to field `declaration_file` (string) vector (reflection.Object.documentation): +0x0D9C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) @@ -1459,68 +1459,68 @@ string (reflection.Object.documentation): vector (reflection.Object.fields): +0x0DDC | 3E 00 00 00 | uint32_t | 0x0000003E (62) | length of vector (# items) - +0x0DE0 | A8 07 00 00 | UOffset32 | 0x000007A8 (1960) Loc: 0x1588 | offset to table[0] - +0x0DE4 | 04 08 00 00 | UOffset32 | 0x00000804 (2052) Loc: 0x15E8 | offset to table[1] - +0x0DE8 | 64 08 00 00 | UOffset32 | 0x00000864 (2148) Loc: 0x164C | offset to table[2] - +0x0DEC | BC 08 00 00 | UOffset32 | 0x000008BC (2236) Loc: 0x16A8 | offset to table[3] - +0x0DF0 | 98 0C 00 00 | UOffset32 | 0x00000C98 (3224) Loc: 0x1A88 | offset to table[4] - +0x0DF4 | 90 1D 00 00 | UOffset32 | 0x00001D90 (7568) Loc: 0x2B84 | offset to table[5] + +0x0DE0 | AC 07 00 00 | UOffset32 | 0x000007AC (1964) Loc: 0x158C | offset to table[0] + +0x0DE4 | 08 08 00 00 | UOffset32 | 0x00000808 (2056) Loc: 0x15EC | offset to table[1] + +0x0DE8 | 68 08 00 00 | UOffset32 | 0x00000868 (2152) Loc: 0x1650 | offset to table[2] + +0x0DEC | C0 08 00 00 | UOffset32 | 0x000008C0 (2240) Loc: 0x16AC | offset to table[3] + +0x0DF0 | 9C 0C 00 00 | UOffset32 | 0x00000C9C (3228) Loc: 0x1A8C | offset to table[4] + +0x0DF4 | A0 1D 00 00 | UOffset32 | 0x00001DA0 (7584) Loc: 0x2B94 | offset to table[5] +0x0DF8 | FC 00 00 00 | UOffset32 | 0x000000FC (252) Loc: 0x0EF4 | offset to table[6] - +0x0DFC | 90 1A 00 00 | UOffset32 | 0x00001A90 (6800) Loc: 0x288C | offset to table[7] - +0x0E00 | E8 11 00 00 | UOffset32 | 0x000011E8 (4584) Loc: 0x1FE8 | offset to table[8] - +0x0E04 | 80 1E 00 00 | UOffset32 | 0x00001E80 (7808) Loc: 0x2C84 | offset to table[9] - +0x0E08 | B4 1F 00 00 | UOffset32 | 0x00001FB4 (8116) Loc: 0x2DBC | offset to table[10] + +0x0DFC | B8 1A 00 00 | UOffset32 | 0x00001AB8 (6840) Loc: 0x28B4 | offset to table[7] + +0x0E00 | EC 11 00 00 | UOffset32 | 0x000011EC (4588) Loc: 0x1FEC | offset to table[8] + +0x0E04 | 90 1E 00 00 | UOffset32 | 0x00001E90 (7824) Loc: 0x2C94 | offset to table[9] + +0x0E08 | C4 1F 00 00 | UOffset32 | 0x00001FC4 (8132) Loc: 0x2DCC | offset to table[10] +0x0E0C | 68 03 00 00 | UOffset32 | 0x00000368 (872) Loc: 0x1174 | offset to table[11] +0x0E10 | 94 02 00 00 | UOffset32 | 0x00000294 (660) Loc: 0x10A4 | offset to table[12] - +0x0E14 | F0 1D 00 00 | UOffset32 | 0x00001DF0 (7664) Loc: 0x2C04 | offset to table[13] + +0x0E14 | 00 1E 00 00 | UOffset32 | 0x00001E00 (7680) Loc: 0x2C14 | offset to table[13] +0x0E18 | A8 04 00 00 | UOffset32 | 0x000004A8 (1192) Loc: 0x12C0 | offset to table[14] +0x0E1C | 30 04 00 00 | UOffset32 | 0x00000430 (1072) Loc: 0x124C | offset to table[15] - +0x0E20 | 0C 20 00 00 | UOffset32 | 0x0000200C (8204) Loc: 0x2E2C | offset to table[16] - +0x0E24 | 24 1F 00 00 | UOffset32 | 0x00001F24 (7972) Loc: 0x2D48 | offset to table[17] - +0x0E28 | C4 03 00 00 | UOffset32 | 0x000003C4 (964) Loc: 0x11EC | offset to table[18] + +0x0E20 | 24 20 00 00 | UOffset32 | 0x00002024 (8228) Loc: 0x2E44 | offset to table[16] + +0x0E24 | 34 1F 00 00 | UOffset32 | 0x00001F34 (7988) Loc: 0x2D58 | offset to table[17] + +0x0E28 | AC 03 00 00 | UOffset32 | 0x000003AC (940) Loc: 0x11D4 | offset to table[18] +0x0E2C | 00 05 00 00 | UOffset32 | 0x00000500 (1280) Loc: 0x132C | offset to table[19] +0x0E30 | 9C 01 00 00 | UOffset32 | 0x0000019C (412) Loc: 0x0FCC | offset to table[20] +0x0E34 | 28 01 00 00 | UOffset32 | 0x00000128 (296) Loc: 0x0F5C | offset to table[21] - +0x0E38 | F8 09 00 00 | UOffset32 | 0x000009F8 (2552) Loc: 0x1830 | offset to table[22] - +0x0E3C | 30 10 00 00 | UOffset32 | 0x00001030 (4144) Loc: 0x1E6C | offset to table[23] - +0x0E40 | 64 20 00 00 | UOffset32 | 0x00002064 (8292) Loc: 0x2EA4 | offset to table[24] + +0x0E38 | FC 09 00 00 | UOffset32 | 0x000009FC (2556) Loc: 0x1834 | offset to table[22] + +0x0E3C | 34 10 00 00 | UOffset32 | 0x00001034 (4148) Loc: 0x1E70 | offset to table[23] + +0x0E40 | 80 20 00 00 | UOffset32 | 0x00002080 (8320) Loc: 0x2EC0 | offset to table[24] +0x0E44 | C8 02 00 00 | UOffset32 | 0x000002C8 (712) Loc: 0x110C | offset to table[25] +0x0E48 | EC 01 00 00 | UOffset32 | 0x000001EC (492) Loc: 0x1034 | offset to table[26] +0x0E4C | 6C 05 00 00 | UOffset32 | 0x0000056C (1388) Loc: 0x13B8 | offset to table[27] +0x0E50 | 74 06 00 00 | UOffset32 | 0x00000674 (1652) Loc: 0x14C4 | offset to table[28] - +0x0E54 | C0 0E 00 00 | UOffset32 | 0x00000EC0 (3776) Loc: 0x1D14 | offset to table[29] - +0x0E58 | 48 1C 00 00 | UOffset32 | 0x00001C48 (7240) Loc: 0x2AA0 | offset to table[30] - +0x0E5C | DC 1B 00 00 | UOffset32 | 0x00001BDC (7132) Loc: 0x2A38 | offset to table[31] - +0x0E60 | 30 11 00 00 | UOffset32 | 0x00001130 (4400) Loc: 0x1F90 | offset to table[32] - +0x0E64 | AC 1C 00 00 | UOffset32 | 0x00001CAC (7340) Loc: 0x2B10 | offset to table[33] - +0x0E68 | DC 13 00 00 | UOffset32 | 0x000013DC (5084) Loc: 0x2244 | offset to table[34] - +0x0E6C | F8 11 00 00 | UOffset32 | 0x000011F8 (4600) Loc: 0x2064 | offset to table[35] - +0x0E70 | 68 1B 00 00 | UOffset32 | 0x00001B68 (7016) Loc: 0x29D8 | offset to table[36] - +0x0E74 | 58 12 00 00 | UOffset32 | 0x00001258 (4696) Loc: 0x20CC | offset to table[37] - +0x0E78 | 88 1A 00 00 | UOffset32 | 0x00001A88 (6792) Loc: 0x2900 | offset to table[38] - +0x0E7C | C4 18 00 00 | UOffset32 | 0x000018C4 (6340) Loc: 0x2740 | offset to table[39] - +0x0E80 | 18 19 00 00 | UOffset32 | 0x00001918 (6424) Loc: 0x2798 | offset to table[40] - +0x0E84 | 68 13 00 00 | UOffset32 | 0x00001368 (4968) Loc: 0x21EC | offset to table[41] - +0x0E88 | F4 12 00 00 | UOffset32 | 0x000012F4 (4852) Loc: 0x217C | offset to table[42] - +0x0E8C | A0 12 00 00 | UOffset32 | 0x000012A0 (4768) Loc: 0x212C | offset to table[43] - +0x0E90 | 2C 18 00 00 | UOffset32 | 0x0000182C (6188) Loc: 0x26BC | offset to table[44] - +0x0E94 | 0C 16 00 00 | UOffset32 | 0x0000160C (5644) Loc: 0x24A0 | offset to table[45] - +0x0E98 | 18 17 00 00 | UOffset32 | 0x00001718 (5912) Loc: 0x25B0 | offset to table[46] - +0x0E9C | 94 14 00 00 | UOffset32 | 0x00001494 (5268) Loc: 0x2330 | offset to table[47] - +0x0EA0 | 98 17 00 00 | UOffset32 | 0x00001798 (6040) Loc: 0x2638 | offset to table[48] - +0x0EA4 | 18 15 00 00 | UOffset32 | 0x00001518 (5400) Loc: 0x23BC | offset to table[49] - +0x0EA8 | 80 16 00 00 | UOffset32 | 0x00001680 (5760) Loc: 0x2528 | offset to table[50] - +0x0EAC | F8 13 00 00 | UOffset32 | 0x000013F8 (5112) Loc: 0x22A4 | offset to table[51] - +0x0EB0 | 44 19 00 00 | UOffset32 | 0x00001944 (6468) Loc: 0x27F4 | offset to table[52] + +0x0E54 | C4 0E 00 00 | UOffset32 | 0x00000EC4 (3780) Loc: 0x1D18 | offset to table[29] + +0x0E58 | 70 1C 00 00 | UOffset32 | 0x00001C70 (7280) Loc: 0x2AC8 | offset to table[30] + +0x0E5C | 04 1C 00 00 | UOffset32 | 0x00001C04 (7172) Loc: 0x2A60 | offset to table[31] + +0x0E60 | 34 11 00 00 | UOffset32 | 0x00001134 (4404) Loc: 0x1F94 | offset to table[32] + +0x0E64 | D4 1C 00 00 | UOffset32 | 0x00001CD4 (7380) Loc: 0x2B38 | offset to table[33] + +0x0E68 | 04 14 00 00 | UOffset32 | 0x00001404 (5124) Loc: 0x226C | offset to table[34] + +0x0E6C | FC 11 00 00 | UOffset32 | 0x000011FC (4604) Loc: 0x2068 | offset to table[35] + +0x0E70 | 90 1B 00 00 | UOffset32 | 0x00001B90 (7056) Loc: 0x2A00 | offset to table[36] + +0x0E74 | 5C 12 00 00 | UOffset32 | 0x0000125C (4700) Loc: 0x20D0 | offset to table[37] + +0x0E78 | B0 1A 00 00 | UOffset32 | 0x00001AB0 (6832) Loc: 0x2928 | offset to table[38] + +0x0E7C | EC 18 00 00 | UOffset32 | 0x000018EC (6380) Loc: 0x2768 | offset to table[39] + +0x0E80 | 40 19 00 00 | UOffset32 | 0x00001940 (6464) Loc: 0x27C0 | offset to table[40] + +0x0E84 | 90 13 00 00 | UOffset32 | 0x00001390 (5008) Loc: 0x2214 | offset to table[41] + +0x0E88 | 14 13 00 00 | UOffset32 | 0x00001314 (4884) Loc: 0x219C | offset to table[42] + +0x0E8C | A4 12 00 00 | UOffset32 | 0x000012A4 (4772) Loc: 0x2130 | offset to table[43] + +0x0E90 | 54 18 00 00 | UOffset32 | 0x00001854 (6228) Loc: 0x26E4 | offset to table[44] + +0x0E94 | 34 16 00 00 | UOffset32 | 0x00001634 (5684) Loc: 0x24C8 | offset to table[45] + +0x0E98 | 40 17 00 00 | UOffset32 | 0x00001740 (5952) Loc: 0x25D8 | offset to table[46] + +0x0E9C | BC 14 00 00 | UOffset32 | 0x000014BC (5308) Loc: 0x2358 | offset to table[47] + +0x0EA0 | C0 17 00 00 | UOffset32 | 0x000017C0 (6080) Loc: 0x2660 | offset to table[48] + +0x0EA4 | 40 15 00 00 | UOffset32 | 0x00001540 (5440) Loc: 0x23E4 | offset to table[49] + +0x0EA8 | A8 16 00 00 | UOffset32 | 0x000016A8 (5800) Loc: 0x2550 | offset to table[50] + +0x0EAC | 20 14 00 00 | UOffset32 | 0x00001420 (5152) Loc: 0x22CC | offset to table[51] + +0x0EB0 | 6C 19 00 00 | UOffset32 | 0x0000196C (6508) Loc: 0x281C | offset to table[52] +0x0EB4 | 70 05 00 00 | UOffset32 | 0x00000570 (1392) Loc: 0x1424 | offset to table[53] - +0x0EB8 | 98 0A 00 00 | UOffset32 | 0x00000A98 (2712) Loc: 0x1950 | offset to table[54] - +0x0EBC | 18 10 00 00 | UOffset32 | 0x00001018 (4120) Loc: 0x1ED4 | offset to table[55] - +0x0EC0 | 68 06 00 00 | UOffset32 | 0x00000668 (1640) Loc: 0x1528 | offset to table[56] - +0x0EC4 | 70 10 00 00 | UOffset32 | 0x00001070 (4208) Loc: 0x1F34 | offset to table[57] - +0x0EC8 | 40 08 00 00 | UOffset32 | 0x00000840 (2112) Loc: 0x1708 | offset to table[58] - +0x0ECC | 38 0F 00 00 | UOffset32 | 0x00000F38 (3896) Loc: 0x1E04 | offset to table[59] - +0x0ED0 | A4 0C 00 00 | UOffset32 | 0x00000CA4 (3236) Loc: 0x1B74 | offset to table[60] - +0x0ED4 | 4C 0D 00 00 | UOffset32 | 0x00000D4C (3404) Loc: 0x1C20 | offset to table[61] + +0x0EB8 | 9C 0A 00 00 | UOffset32 | 0x00000A9C (2716) Loc: 0x1954 | offset to table[54] + +0x0EBC | 1C 10 00 00 | UOffset32 | 0x0000101C (4124) Loc: 0x1ED8 | offset to table[55] + +0x0EC0 | 6C 06 00 00 | UOffset32 | 0x0000066C (1644) Loc: 0x152C | offset to table[56] + +0x0EC4 | 74 10 00 00 | UOffset32 | 0x00001074 (4212) Loc: 0x1F38 | offset to table[57] + +0x0EC8 | 44 08 00 00 | UOffset32 | 0x00000844 (2116) Loc: 0x170C | offset to table[58] + +0x0ECC | 3C 0F 00 00 | UOffset32 | 0x00000F3C (3900) Loc: 0x1E08 | offset to table[59] + +0x0ED0 | A8 0C 00 00 | UOffset32 | 0x00000CA8 (3240) Loc: 0x1B78 | offset to table[60] + +0x0ED4 | 50 0D 00 00 | UOffset32 | 0x00000D50 (3408) Loc: 0x1C24 | offset to table[61] string (reflection.Object.name): +0x0ED8 | 16 00 00 00 | uint32_t | 0x00000016 (22) | length of string @@ -1530,7 +1530,7 @@ string (reflection.Object.name): +0x0EF2 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0EF4 | 20 ED FF FF | SOffset32 | 0xFFFFED20 (-4832) Loc: 0x21D4 | offset to vtable + +0x0EF4 | FA EC FF FF | SOffset32 | 0xFFFFECFA (-4870) Loc: 0x21FA | offset to vtable +0x0EF8 | 3D 00 | uint16_t | 0x003D (61) | table field `id` (UShort) +0x0EFA | 7E 00 | uint16_t | 0x007E (126) | table field `offset` (UShort) +0x0EFC | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x0F44 | offset to field `name` (string) @@ -1543,7 +1543,7 @@ vector (reflection.Field.attributes): +0x0F14 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0F18 | offset to table[0] table (reflection.KeyValue): - +0x0F18 | 50 D6 FF FF | SOffset32 | 0xFFFFD650 (-10672) Loc: 0x38C8 | offset to vtable + +0x0F18 | 30 D6 FF FF | SOffset32 | 0xFFFFD630 (-10704) Loc: 0x38E8 | offset to vtable +0x0F1C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0F2C | offset to field `key` (string) +0x0F20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0F24 | offset to field `value` (string) @@ -1558,7 +1558,7 @@ string (reflection.KeyValue.key): +0x0F32 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x0F34 | C0 D8 FF FF | SOffset32 | 0xFFFFD8C0 (-10048) Loc: 0x3674 | offset to vtable + +0x0F34 | A0 D8 FF FF | SOffset32 | 0xFFFFD8A0 (-10080) Loc: 0x3694 | offset to vtable +0x0F38 | 00 00 00 | uint8_t[3] | ... | padding +0x0F3B | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) +0x0F3C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) @@ -1572,7 +1572,7 @@ string (reflection.Field.name): +0x0F5A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0F5C | 88 FD FF FF | SOffset32 | 0xFFFFFD88 (-632) Loc: 0x11D4 | offset to vtable + +0x0F5C | DA ED FF FF | SOffset32 | 0xFFFFEDDA (-4646) Loc: 0x2182 | offset to vtable +0x0F60 | 3C 00 | uint16_t | 0x003C (60) | table field `id` (UShort) +0x0F62 | 7C 00 | uint16_t | 0x007C (124) | table field `offset` (UShort) +0x0F64 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x0FAC | offset to field `name` (string) @@ -1586,7 +1586,7 @@ vector (reflection.Field.attributes): +0x0F80 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0F84 | offset to table[0] table (reflection.KeyValue): - +0x0F84 | BC D6 FF FF | SOffset32 | 0xFFFFD6BC (-10564) Loc: 0x38C8 | offset to vtable + +0x0F84 | 9C D6 FF FF | SOffset32 | 0xFFFFD69C (-10596) Loc: 0x38E8 | offset to vtable +0x0F88 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0F98 | offset to field `key` (string) +0x0F8C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0F90 | offset to field `value` (string) @@ -1601,7 +1601,7 @@ string (reflection.KeyValue.key): +0x0F9E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x0FA0 | C4 D6 FF FF | SOffset32 | 0xFFFFD6C4 (-10556) Loc: 0x38DC | offset to vtable + +0x0FA0 | A4 D6 FF FF | SOffset32 | 0xFFFFD6A4 (-10588) Loc: 0x38FC | offset to vtable +0x0FA4 | 00 00 00 | uint8_t[3] | ... | padding +0x0FA7 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) +0x0FA8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) @@ -1618,7 +1618,7 @@ padding: +0x0FCA | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x0FCC | F8 ED FF FF | SOffset32 | 0xFFFFEDF8 (-4616) Loc: 0x21D4 | offset to vtable + +0x0FCC | D2 ED FF FF | SOffset32 | 0xFFFFEDD2 (-4654) Loc: 0x21FA | offset to vtable +0x0FD0 | 3B 00 | uint16_t | 0x003B (59) | table field `id` (UShort) +0x0FD2 | 7A 00 | uint16_t | 0x007A (122) | table field `offset` (UShort) +0x0FD4 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x1018 | offset to field `name` (string) @@ -1631,7 +1631,7 @@ vector (reflection.Field.attributes): +0x0FEC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0FF0 | offset to table[0] table (reflection.KeyValue): - +0x0FF0 | 28 D7 FF FF | SOffset32 | 0xFFFFD728 (-10456) Loc: 0x38C8 | offset to vtable + +0x0FF0 | 08 D7 FF FF | SOffset32 | 0xFFFFD708 (-10488) Loc: 0x38E8 | offset to vtable +0x0FF4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1004 | offset to field `key` (string) +0x0FF8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0FFC | offset to field `value` (string) @@ -1646,7 +1646,7 @@ string (reflection.KeyValue.key): +0x100A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x100C | 30 D7 FF FF | SOffset32 | 0xFFFFD730 (-10448) Loc: 0x38DC | offset to vtable + +0x100C | 10 D7 FF FF | SOffset32 | 0xFFFFD710 (-10480) Loc: 0x38FC | offset to vtable +0x1010 | 00 00 00 | uint8_t[3] | ... | padding +0x1013 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) +0x1014 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) @@ -1662,7 +1662,7 @@ padding: +0x1031 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1034 | 60 FE FF FF | SOffset32 | 0xFFFFFE60 (-416) Loc: 0x11D4 | offset to vtable + +0x1034 | B2 EE FF FF | SOffset32 | 0xFFFFEEB2 (-4430) Loc: 0x2182 | offset to vtable +0x1038 | 3A 00 | uint16_t | 0x003A (58) | table field `id` (UShort) +0x103A | 78 00 | uint16_t | 0x0078 (120) | table field `offset` (UShort) +0x103C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x1084 | offset to field `name` (string) @@ -1676,7 +1676,7 @@ vector (reflection.Field.attributes): +0x1058 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x105C | offset to table[0] table (reflection.KeyValue): - +0x105C | 94 D7 FF FF | SOffset32 | 0xFFFFD794 (-10348) Loc: 0x38C8 | offset to vtable + +0x105C | 74 D7 FF FF | SOffset32 | 0xFFFFD774 (-10380) Loc: 0x38E8 | offset to vtable +0x1060 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1070 | offset to field `key` (string) +0x1064 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1068 | offset to field `value` (string) @@ -1691,7 +1691,7 @@ string (reflection.KeyValue.key): +0x1076 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1078 | 9C D7 FF FF | SOffset32 | 0xFFFFD79C (-10340) Loc: 0x38DC | offset to vtable + +0x1078 | 7C D7 FF FF | SOffset32 | 0xFFFFD77C (-10372) Loc: 0x38FC | offset to vtable +0x107C | 00 00 00 | uint8_t[3] | ... | padding +0x107F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) +0x1080 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) @@ -1708,7 +1708,7 @@ padding: +0x10A2 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x10A4 | D0 FE FF FF | SOffset32 | 0xFFFFFED0 (-304) Loc: 0x11D4 | offset to vtable + +0x10A4 | 22 EF FF FF | SOffset32 | 0xFFFFEF22 (-4318) Loc: 0x2182 | offset to vtable +0x10A8 | 39 00 | uint16_t | 0x0039 (57) | table field `id` (UShort) +0x10AA | 76 00 | uint16_t | 0x0076 (118) | table field `offset` (UShort) +0x10AC | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x10F4 | offset to field `name` (string) @@ -1722,7 +1722,7 @@ vector (reflection.Field.attributes): +0x10C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x10CC | offset to table[0] table (reflection.KeyValue): - +0x10CC | 04 D8 FF FF | SOffset32 | 0xFFFFD804 (-10236) Loc: 0x38C8 | offset to vtable + +0x10CC | E4 D7 FF FF | SOffset32 | 0xFFFFD7E4 (-10268) Loc: 0x38E8 | offset to vtable +0x10D0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x10E0 | offset to field `key` (string) +0x10D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x10D8 | offset to field `value` (string) @@ -1737,7 +1737,7 @@ string (reflection.KeyValue.key): +0x10E6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x10E8 | 0C D8 FF FF | SOffset32 | 0xFFFFD80C (-10228) Loc: 0x38DC | offset to vtable + +0x10E8 | EC D7 FF FF | SOffset32 | 0xFFFFD7EC (-10260) Loc: 0x38FC | offset to vtable +0x10EC | 00 00 00 | uint8_t[3] | ... | padding +0x10EF | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) +0x10F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) @@ -1752,7 +1752,7 @@ padding: +0x1109 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x110C | 38 EF FF FF | SOffset32 | 0xFFFFEF38 (-4296) Loc: 0x21D4 | offset to vtable + +0x110C | 12 EF FF FF | SOffset32 | 0xFFFFEF12 (-4334) Loc: 0x21FA | offset to vtable +0x1110 | 38 00 | uint16_t | 0x0038 (56) | table field `id` (UShort) +0x1112 | 74 00 | uint16_t | 0x0074 (116) | table field `offset` (UShort) +0x1114 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x1158 | offset to field `name` (string) @@ -1765,7 +1765,7 @@ vector (reflection.Field.attributes): +0x112C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1130 | offset to table[0] table (reflection.KeyValue): - +0x1130 | 68 D8 FF FF | SOffset32 | 0xFFFFD868 (-10136) Loc: 0x38C8 | offset to vtable + +0x1130 | 48 D8 FF FF | SOffset32 | 0xFFFFD848 (-10168) Loc: 0x38E8 | offset to vtable +0x1134 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1144 | offset to field `key` (string) +0x1138 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x113C | offset to field `value` (string) @@ -1780,7 +1780,7 @@ string (reflection.KeyValue.key): +0x114A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x114C | 70 D8 FF FF | SOffset32 | 0xFFFFD870 (-10128) Loc: 0x38DC | offset to vtable + +0x114C | 50 D8 FF FF | SOffset32 | 0xFFFFD850 (-10160) Loc: 0x38FC | offset to vtable +0x1150 | 00 00 00 | uint8_t[3] | ... | padding +0x1153 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) +0x1154 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) @@ -1796,7 +1796,7 @@ padding: +0x1171 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1174 | A0 FF FF FF | SOffset32 | 0xFFFFFFA0 (-96) Loc: 0x11D4 | offset to vtable + +0x1174 | F2 EF FF FF | SOffset32 | 0xFFFFEFF2 (-4110) Loc: 0x2182 | offset to vtable +0x1178 | 37 00 | uint16_t | 0x0037 (55) | table field `id` (UShort) +0x117A | 72 00 | uint16_t | 0x0072 (114) | table field `offset` (UShort) +0x117C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x11C4 | offset to field `name` (string) @@ -1810,7 +1810,7 @@ vector (reflection.Field.attributes): +0x1198 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x119C | offset to table[0] table (reflection.KeyValue): - +0x119C | D4 D8 FF FF | SOffset32 | 0xFFFFD8D4 (-10028) Loc: 0x38C8 | offset to vtable + +0x119C | B4 D8 FF FF | SOffset32 | 0xFFFFD8B4 (-10060) Loc: 0x38E8 | offset to vtable +0x11A0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x11B0 | offset to field `key` (string) +0x11A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x11A8 | offset to field `value` (string) @@ -1825,7 +1825,7 @@ string (reflection.KeyValue.key): +0x11B6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x11B8 | DC D8 FF FF | SOffset32 | 0xFFFFD8DC (-10020) Loc: 0x38DC | offset to vtable + +0x11B8 | BC D8 FF FF | SOffset32 | 0xFFFFD8BC (-10052) Loc: 0x38FC | offset to vtable +0x11BC | 00 00 00 | uint8_t[3] | ... | padding +0x11BF | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) +0x11C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) @@ -1836,63 +1836,66 @@ string (reflection.Field.name): +0x11D0 | 75 6C 74 | | ult +0x11D3 | 00 | char | 0x00 (0) | string terminator -vtable (reflection.Field): - +0x11D4 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x11D6 | 20 00 | uint16_t | 0x0020 (32) | size of referring table - +0x11D8 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x11DA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x11DC | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x11DE | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x11E0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x11E2 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_real` (id: 5) - +0x11E4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x11E6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x11E8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x11EA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) - table (reflection.Field): - +0x11EC | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x11D4 | offset to vtable - +0x11F0 | 36 00 | uint16_t | 0x0036 (54) | table field `id` (UShort) - +0x11F2 | 70 00 | uint16_t | 0x0070 (112) | table field `offset` (UShort) - +0x11F4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x123C | offset to field `name` (string) - +0x11F8 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x1230 | offset to field `type` (table) - +0x11FC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x120C | offset to field `attributes` (vector) - +0x1200 | 00 00 00 00 00 00 F8 7F | double | 0x7FF8000000000000 (nan) | table field `default_real` (Double) - +0x1208 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x11D4 | DA EF FF FF | SOffset32 | 0xFFFFEFDA (-4134) Loc: 0x21FA | offset to vtable + +0x11D8 | 36 00 | uint16_t | 0x0036 (54) | table field `id` (UShort) + +0x11DA | 70 00 | uint16_t | 0x0070 (112) | table field `offset` (UShort) + +0x11DC | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x1220 | offset to field `name` (string) + +0x11E0 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x1214 | offset to field `type` (table) + +0x11E4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x11F0 | offset to field `attributes` (vector) + +0x11E8 | 00 00 00 00 00 00 F8 7F | double | 0x7FF8000000000000 (nan) | table field `default_real` (Double) vector (reflection.Field.attributes): - +0x120C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1210 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1214 | offset to table[0] + +0x11F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x11F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x11F8 | offset to table[0] table (reflection.KeyValue): - +0x1214 | 4C D9 FF FF | SOffset32 | 0xFFFFD94C (-9908) Loc: 0x38C8 | offset to vtable - +0x1218 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1228 | offset to field `key` (string) - +0x121C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1220 | offset to field `value` (string) + +0x11F8 | 10 D9 FF FF | SOffset32 | 0xFFFFD910 (-9968) Loc: 0x38E8 | offset to vtable + +0x11FC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x120C | offset to field `key` (string) + +0x1200 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1204 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1220 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1224 | 35 34 | char[2] | 54 | string literal - +0x1226 | 00 | char | 0x00 (0) | string terminator + +0x1204 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1208 | 35 34 | char[2] | 54 | string literal + +0x120A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1228 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x122C | 69 64 | char[2] | id | string literal - +0x122E | 00 | char | 0x00 (0) | string terminator + +0x120C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1210 | 69 64 | char[2] | id | string literal + +0x1212 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1230 | 54 D9 FF FF | SOffset32 | 0xFFFFD954 (-9900) Loc: 0x38DC | offset to vtable - +0x1234 | 00 00 00 | uint8_t[3] | ... | padding - +0x1237 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x1238 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1214 | 18 D9 FF FF | SOffset32 | 0xFFFFD918 (-9960) Loc: 0x38FC | offset to vtable + +0x1218 | 00 00 00 | uint8_t[3] | ... | padding + +0x121B | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x121C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x123C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1240 | 6E 61 6E 5F 64 65 66 61 | char[11] | nan_defa | string literal - +0x1248 | 75 6C 74 | | ult - +0x124B | 00 | char | 0x00 (0) | string terminator + +0x1220 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1224 | 6E 61 6E 5F 64 65 66 61 | char[11] | nan_defa | string literal + +0x122C | 75 6C 74 | | ult + +0x122F | 00 | char | 0x00 (0) | string terminator + +padding: + +0x1230 | 00 00 | uint8_t[2] | .. | padding + +vtable (reflection.Field): + +0x1232 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x1234 | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x1236 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x1238 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x123A | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x123C | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x123E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_integer` (id: 4) + +0x1240 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x1242 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x1244 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated_readonly` (id: 7) (Bool) + +0x1246 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 8) (Bool) + +0x1248 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 9) (Bool) + +0x124A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 10) table (reflection.Field): - +0x124C | 38 E4 FF FF | SOffset32 | 0xFFFFE438 (-7112) Loc: 0x2E14 | offset to vtable + +0x124C | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: 0x1232 | offset to vtable +0x1250 | 35 00 | uint16_t | 0x0035 (53) | table field `id` (UShort) +0x1252 | 6E 00 | uint16_t | 0x006E (110) | table field `offset` (UShort) +0x1254 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: 0x12A0 | offset to field `name` (string) @@ -1905,7 +1908,7 @@ vector (reflection.Field.attributes): +0x126C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1270 | offset to table[0] table (reflection.KeyValue): - +0x1270 | A8 D9 FF FF | SOffset32 | 0xFFFFD9A8 (-9816) Loc: 0x38C8 | offset to vtable + +0x1270 | 88 D9 FF FF | SOffset32 | 0xFFFFD988 (-9848) Loc: 0x38E8 | offset to vtable +0x1274 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1284 | offset to field `key` (string) +0x1278 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x127C | offset to field `value` (string) @@ -1920,7 +1923,7 @@ string (reflection.KeyValue.key): +0x128A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x128C | E0 DC FF FF | SOffset32 | 0xFFFFDCE0 (-8992) Loc: 0x35AC | offset to vtable + +0x128C | C0 DC FF FF | SOffset32 | 0xFFFFDCC0 (-9024) Loc: 0x35CC | offset to vtable +0x1290 | 00 00 00 | uint8_t[3] | ... | padding +0x1293 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) +0x1294 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) @@ -1938,7 +1941,7 @@ padding: +0x12BD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x12C0 | C8 E7 FF FF | SOffset32 | 0xFFFFE7C8 (-6200) Loc: 0x2AF8 | offset to vtable + +0x12C0 | A2 E7 FF FF | SOffset32 | 0xFFFFE7A2 (-6238) Loc: 0x2B1E | offset to vtable +0x12C4 | 34 00 | uint16_t | 0x0034 (52) | table field `id` (UShort) +0x12C6 | 6C 00 | uint16_t | 0x006C (108) | table field `offset` (UShort) +0x12C8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x130C | offset to field `name` (string) @@ -1950,7 +1953,7 @@ vector (reflection.Field.attributes): +0x12D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x12DC | offset to table[0] table (reflection.KeyValue): - +0x12DC | 14 DA FF FF | SOffset32 | 0xFFFFDA14 (-9708) Loc: 0x38C8 | offset to vtable + +0x12DC | F4 D9 FF FF | SOffset32 | 0xFFFFD9F4 (-9740) Loc: 0x38E8 | offset to vtable +0x12E0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x12F0 | offset to field `key` (string) +0x12E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x12E8 | offset to field `value` (string) @@ -1965,7 +1968,7 @@ string (reflection.KeyValue.key): +0x12F6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x12F8 | 4C DD FF FF | SOffset32 | 0xFFFFDD4C (-8884) Loc: 0x35AC | offset to vtable + +0x12F8 | 2C DD FF FF | SOffset32 | 0xFFFFDD2C (-8916) Loc: 0x35CC | offset to vtable +0x12FC | 00 00 00 | uint8_t[3] | ... | padding +0x12FF | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) +0x1300 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) @@ -1981,7 +1984,7 @@ string (reflection.Field.name): +0x132A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x132C | 44 E7 FF FF | SOffset32 | 0xFFFFE744 (-6332) Loc: 0x2BE8 | offset to vtable + +0x132C | 36 E7 FF FF | SOffset32 | 0xFFFFE736 (-6346) Loc: 0x2BF6 | offset to vtable +0x1330 | 00 00 00 | uint8_t[3] | ... | padding +0x1333 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) +0x1334 | 33 00 | uint16_t | 0x0033 (51) | table field `id` (UShort) @@ -1996,7 +1999,7 @@ vector (reflection.Field.attributes): +0x134C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1350 | offset to table[1] table (reflection.KeyValue): - +0x1350 | 88 DA FF FF | SOffset32 | 0xFFFFDA88 (-9592) Loc: 0x38C8 | offset to vtable + +0x1350 | 68 DA FF FF | SOffset32 | 0xFFFFDA68 (-9624) Loc: 0x38E8 | offset to vtable +0x1354 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1364 | offset to field `key` (string) +0x1358 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x135C | offset to field `value` (string) @@ -2018,7 +2021,7 @@ padding: +0x1376 | 00 00 | uint8_t[2] | .. | padding table (reflection.KeyValue): - +0x1378 | B0 DA FF FF | SOffset32 | 0xFFFFDAB0 (-9552) Loc: 0x38C8 | offset to vtable + +0x1378 | 90 DA FF FF | SOffset32 | 0xFFFFDA90 (-9584) Loc: 0x38E8 | offset to vtable +0x137C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x138C | offset to field `key` (string) +0x1380 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1384 | offset to field `value` (string) @@ -2033,7 +2036,7 @@ string (reflection.KeyValue.key): +0x1392 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1394 | 7C DB FF FF | SOffset32 | 0xFFFFDB7C (-9348) Loc: 0x3818 | offset to vtable + +0x1394 | 5C DB FF FF | SOffset32 | 0xFFFFDB5C (-9380) Loc: 0x3838 | offset to vtable +0x1398 | 00 00 00 | uint8_t[3] | ... | padding +0x139B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) +0x139C | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) @@ -2049,7 +2052,7 @@ padding: +0x13B6 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x13B8 | D0 E7 FF FF | SOffset32 | 0xFFFFE7D0 (-6192) Loc: 0x2BE8 | offset to vtable + +0x13B8 | C2 E7 FF FF | SOffset32 | 0xFFFFE7C2 (-6206) Loc: 0x2BF6 | offset to vtable +0x13BC | 00 00 00 | uint8_t[3] | ... | padding +0x13BF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) +0x13C0 | 32 00 | uint16_t | 0x0032 (50) | table field `id` (UShort) @@ -2063,7 +2066,7 @@ vector (reflection.Field.attributes): +0x13D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x13D8 | offset to table[0] table (reflection.KeyValue): - +0x13D8 | 10 DB FF FF | SOffset32 | 0xFFFFDB10 (-9456) Loc: 0x38C8 | offset to vtable + +0x13D8 | F0 DA FF FF | SOffset32 | 0xFFFFDAF0 (-9488) Loc: 0x38E8 | offset to vtable +0x13DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x13EC | offset to field `key` (string) +0x13E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x13E4 | offset to field `value` (string) @@ -2078,7 +2081,7 @@ string (reflection.KeyValue.key): +0x13F2 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x13F4 | 80 E9 FF FF | SOffset32 | 0xFFFFE980 (-5760) Loc: 0x2A74 | offset to vtable + +0x13F4 | 58 E9 FF FF | SOffset32 | 0xFFFFE958 (-5800) Loc: 0x2A9C | offset to vtable +0x13F8 | 00 00 | uint8_t[2] | .. | padding +0x13FA | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) +0x13FB | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) @@ -2096,7 +2099,7 @@ padding: +0x1421 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1424 | 3C E8 FF FF | SOffset32 | 0xFFFFE83C (-6084) Loc: 0x2BE8 | offset to vtable + +0x1424 | 2E E8 FF FF | SOffset32 | 0xFFFFE82E (-6098) Loc: 0x2BF6 | offset to vtable +0x1428 | 00 00 00 | uint8_t[3] | ... | padding +0x142B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) +0x142C | 31 00 | uint16_t | 0x0031 (49) | table field `id` (UShort) @@ -2111,7 +2114,7 @@ vector (reflection.Field.attributes): +0x1444 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1448 | offset to table[1] table (reflection.KeyValue): - +0x1448 | 80 DB FF FF | SOffset32 | 0xFFFFDB80 (-9344) Loc: 0x38C8 | offset to vtable + +0x1448 | 60 DB FF FF | SOffset32 | 0xFFFFDB60 (-9376) Loc: 0x38E8 | offset to vtable +0x144C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x1460 | offset to field `key` (string) +0x1450 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1454 | offset to field `value` (string) @@ -2131,7 +2134,7 @@ padding: +0x1476 | 00 00 | uint8_t[2] | .. | padding table (reflection.KeyValue): - +0x1478 | B0 DB FF FF | SOffset32 | 0xFFFFDBB0 (-9296) Loc: 0x38C8 | offset to vtable + +0x1478 | 90 DB FF FF | SOffset32 | 0xFFFFDB90 (-9328) Loc: 0x38E8 | offset to vtable +0x147C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x148C | offset to field `key` (string) +0x1480 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1484 | offset to field `value` (string) @@ -2146,7 +2149,7 @@ string (reflection.KeyValue.key): +0x1492 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1494 | 54 E8 FF FF | SOffset32 | 0xFFFFE854 (-6060) Loc: 0x2C40 | offset to vtable + +0x1494 | 44 E8 FF FF | SOffset32 | 0xFFFFE844 (-6076) Loc: 0x2C50 | offset to vtable +0x1498 | 00 00 | uint8_t[2] | .. | padding +0x149A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) +0x149B | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) @@ -2164,4331 +2167,4325 @@ padding: +0x14C1 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x14C4 | B0 E6 FF FF | SOffset32 | 0xFFFFE6B0 (-6480) Loc: 0x2E14 | offset to vtable + +0x14C4 | 9A E6 FF FF | SOffset32 | 0xFFFFE69A (-6502) Loc: 0x2E2A | offset to vtable +0x14C8 | 30 00 | uint16_t | 0x0030 (48) | table field `id` (UShort) +0x14CA | 64 00 | uint16_t | 0x0064 (100) | table field `offset` (UShort) - +0x14CC | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: 0x1518 | offset to field `name` (string) - +0x14D0 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x1504 | offset to field `type` (table) - +0x14D4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x14E0 | offset to field `attributes` (vector) + +0x14CC | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x151C | offset to field `name` (string) + +0x14D0 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x1508 | offset to field `type` (table) + +0x14D4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x14E4 | offset to field `attributes` (vector) +0x14D8 | FF FF FF FF FF FF FF FF | int64_t | 0xFFFFFFFFFFFFFFFF (-1) | table field `default_integer` (Long) + +0x14E0 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.attributes): - +0x14E0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x14E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x14E8 | offset to table[0] + +0x14E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x14E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x14EC | offset to table[0] table (reflection.KeyValue): - +0x14E8 | 20 DC FF FF | SOffset32 | 0xFFFFDC20 (-9184) Loc: 0x38C8 | offset to vtable - +0x14EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x14FC | offset to field `key` (string) - +0x14F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x14F4 | offset to field `value` (string) + +0x14EC | 04 DC FF FF | SOffset32 | 0xFFFFDC04 (-9212) Loc: 0x38E8 | offset to vtable + +0x14F0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1500 | offset to field `key` (string) + +0x14F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x14F8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x14F4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x14F8 | 34 38 | char[2] | 48 | string literal - +0x14FA | 00 | char | 0x00 (0) | string terminator + +0x14F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x14FC | 34 38 | char[2] | 48 | string literal + +0x14FE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x14FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1500 | 69 64 | char[2] | id | string literal - +0x1502 | 00 | char | 0x00 (0) | string terminator + +0x1500 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1504 | 69 64 | char[2] | id | string literal + +0x1506 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1504 | 58 DF FF FF | SOffset32 | 0xFFFFDF58 (-8360) Loc: 0x35AC | offset to vtable - +0x1508 | 00 00 00 | uint8_t[3] | ... | padding - +0x150B | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) - +0x150C | 05 00 00 00 | uint32_t | 0x00000005 (5) | table field `index` (Int) - +0x1510 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x1514 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1508 | 3C DF FF FF | SOffset32 | 0xFFFFDF3C (-8388) Loc: 0x35CC | offset to vtable + +0x150C | 00 00 00 | uint8_t[3] | ... | padding + +0x150F | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) + +0x1510 | 05 00 00 00 | uint32_t | 0x00000005 (5) | table field `index` (Int) + +0x1514 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x1518 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1518 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x151C | 73 69 67 6E 65 64 5F 65 | char[11] | signed_e | string literal - +0x1524 | 6E 75 6D | | num - +0x1527 | 00 | char | 0x00 (0) | string terminator + +0x151C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1520 | 73 69 67 6E 65 64 5F 65 | char[11] | signed_e | string literal + +0x1528 | 6E 75 6D | | num + +0x152B | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1528 | 40 E9 FF FF | SOffset32 | 0xFFFFE940 (-5824) Loc: 0x2BE8 | offset to vtable - +0x152C | 00 00 00 | uint8_t[3] | ... | padding - +0x152F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1530 | 2F 00 | uint16_t | 0x002F (47) | table field `id` (UShort) - +0x1532 | 62 00 | uint16_t | 0x0062 (98) | table field `offset` (UShort) - +0x1534 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x1574 | offset to field `name` (string) - +0x1538 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1564 | offset to field `type` (table) - +0x153C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1540 | offset to field `attributes` (vector) + +0x152C | 36 E9 FF FF | SOffset32 | 0xFFFFE936 (-5834) Loc: 0x2BF6 | offset to vtable + +0x1530 | 00 00 00 | uint8_t[3] | ... | padding + +0x1533 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1534 | 2F 00 | uint16_t | 0x002F (47) | table field `id` (UShort) + +0x1536 | 62 00 | uint16_t | 0x0062 (98) | table field `offset` (UShort) + +0x1538 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x1578 | offset to field `name` (string) + +0x153C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1568 | offset to field `type` (table) + +0x1540 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1544 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1540 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1544 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1548 | offset to table[0] + +0x1544 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1548 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x154C | offset to table[0] table (reflection.KeyValue): - +0x1548 | 80 DC FF FF | SOffset32 | 0xFFFFDC80 (-9088) Loc: 0x38C8 | offset to vtable - +0x154C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x155C | offset to field `key` (string) - +0x1550 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1554 | offset to field `value` (string) + +0x154C | 64 DC FF FF | SOffset32 | 0xFFFFDC64 (-9116) Loc: 0x38E8 | offset to vtable + +0x1550 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1560 | offset to field `key` (string) + +0x1554 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1558 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1554 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1558 | 34 37 | char[2] | 47 | string literal - +0x155A | 00 | char | 0x00 (0) | string terminator + +0x1558 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x155C | 34 37 | char[2] | 47 | string literal + +0x155E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x155C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1560 | 69 64 | char[2] | id | string literal - +0x1562 | 00 | char | 0x00 (0) | string terminator + +0x1560 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1564 | 69 64 | char[2] | id | string literal + +0x1566 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1564 | F0 EA FF FF | SOffset32 | 0xFFFFEAF0 (-5392) Loc: 0x2A74 | offset to vtable - +0x1568 | 00 00 | uint8_t[2] | .. | padding - +0x156A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x156B | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) - +0x156C | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x1570 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1568 | CC EA FF FF | SOffset32 | 0xFFFFEACC (-5428) Loc: 0x2A9C | offset to vtable + +0x156C | 00 00 | uint8_t[2] | .. | padding + +0x156E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x156F | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) + +0x1570 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x1574 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1574 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string - +0x1578 | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal - +0x1580 | 66 5F 65 6E 75 6D 73 | | f_enums - +0x1587 | 00 | char | 0x00 (0) | string terminator + +0x1578 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string + +0x157C | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal + +0x1584 | 66 5F 65 6E 75 6D 73 | | f_enums + +0x158B | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1588 | A0 E9 FF FF | SOffset32 | 0xFFFFE9A0 (-5728) Loc: 0x2BE8 | offset to vtable - +0x158C | 00 00 00 | uint8_t[3] | ... | padding - +0x158F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1590 | 2E 00 | uint16_t | 0x002E (46) | table field `id` (UShort) - +0x1592 | 60 00 | uint16_t | 0x0060 (96) | table field `offset` (UShort) - +0x1594 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x15D4 | offset to field `name` (string) - +0x1598 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x15C4 | offset to field `type` (table) - +0x159C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x15A0 | offset to field `attributes` (vector) + +0x158C | 96 E9 FF FF | SOffset32 | 0xFFFFE996 (-5738) Loc: 0x2BF6 | offset to vtable + +0x1590 | 00 00 00 | uint8_t[3] | ... | padding + +0x1593 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1594 | 2E 00 | uint16_t | 0x002E (46) | table field `id` (UShort) + +0x1596 | 60 00 | uint16_t | 0x0060 (96) | table field `offset` (UShort) + +0x1598 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x15D8 | offset to field `name` (string) + +0x159C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x15C8 | offset to field `type` (table) + +0x15A0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x15A4 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x15A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x15A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x15A8 | offset to table[0] + +0x15A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x15A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x15AC | offset to table[0] table (reflection.KeyValue): - +0x15A8 | E0 DC FF FF | SOffset32 | 0xFFFFDCE0 (-8992) Loc: 0x38C8 | offset to vtable - +0x15AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x15BC | offset to field `key` (string) - +0x15B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x15B4 | offset to field `value` (string) + +0x15AC | C4 DC FF FF | SOffset32 | 0xFFFFDCC4 (-9020) Loc: 0x38E8 | offset to vtable + +0x15B0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x15C0 | offset to field `key` (string) + +0x15B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x15B8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x15B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x15B8 | 34 36 | char[2] | 46 | string literal - +0x15BA | 00 | char | 0x00 (0) | string terminator + +0x15B8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x15BC | 34 36 | char[2] | 46 | string literal + +0x15BE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x15BC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x15C0 | 69 64 | char[2] | id | string literal - +0x15C2 | 00 | char | 0x00 (0) | string terminator + +0x15C0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x15C4 | 69 64 | char[2] | id | string literal + +0x15C6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x15C4 | AC DD FF FF | SOffset32 | 0xFFFFDDAC (-8788) Loc: 0x3818 | offset to vtable - +0x15C8 | 00 00 00 | uint8_t[3] | ... | padding - +0x15CB | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) - +0x15CC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x15D0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x15C8 | 90 DD FF FF | SOffset32 | 0xFFFFDD90 (-8816) Loc: 0x3838 | offset to vtable + +0x15CC | 00 00 00 | uint8_t[3] | ... | padding + +0x15CF | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) + +0x15D0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x15D4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x15D4 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string - +0x15D8 | 61 6E 79 5F 61 6D 62 69 | char[13] | any_ambi | string literal - +0x15E0 | 67 75 6F 75 73 | | guous - +0x15E5 | 00 | char | 0x00 (0) | string terminator + +0x15D8 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string + +0x15DC | 61 6E 79 5F 61 6D 62 69 | char[13] | any_ambi | string literal + +0x15E4 | 67 75 6F 75 73 | | guous + +0x15E9 | 00 | char | 0x00 (0) | string terminator padding: - +0x15E6 | 00 00 | uint8_t[2] | .. | padding + +0x15EA | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x15E8 | F0 EA FF FF | SOffset32 | 0xFFFFEAF0 (-5392) Loc: 0x2AF8 | offset to vtable - +0x15EC | 2D 00 | uint16_t | 0x002D (45) | table field `id` (UShort) - +0x15EE | 5E 00 | uint16_t | 0x005E (94) | table field `offset` (UShort) - +0x15F0 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x1634 | offset to field `name` (string) - +0x15F4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1620 | offset to field `type` (table) - +0x15F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x15FC | offset to field `attributes` (vector) + +0x15EC | CE EA FF FF | SOffset32 | 0xFFFFEACE (-5426) Loc: 0x2B1E | offset to vtable + +0x15F0 | 2D 00 | uint16_t | 0x002D (45) | table field `id` (UShort) + +0x15F2 | 5E 00 | uint16_t | 0x005E (94) | table field `offset` (UShort) + +0x15F4 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x1638 | offset to field `name` (string) + +0x15F8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1624 | offset to field `type` (table) + +0x15FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1600 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x15FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1600 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1604 | offset to table[0] + +0x1600 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1604 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1608 | offset to table[0] table (reflection.KeyValue): - +0x1604 | 3C DD FF FF | SOffset32 | 0xFFFFDD3C (-8900) Loc: 0x38C8 | offset to vtable - +0x1608 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1618 | offset to field `key` (string) - +0x160C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1610 | offset to field `value` (string) + +0x1608 | 20 DD FF FF | SOffset32 | 0xFFFFDD20 (-8928) Loc: 0x38E8 | offset to vtable + +0x160C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x161C | offset to field `key` (string) + +0x1610 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1614 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1610 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1614 | 34 35 | char[2] | 45 | string literal - +0x1616 | 00 | char | 0x00 (0) | string terminator + +0x1614 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1618 | 34 35 | char[2] | 45 | string literal + +0x161A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1618 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x161C | 69 64 | char[2] | id | string literal - +0x161E | 00 | char | 0x00 (0) | string terminator + +0x161C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1620 | 69 64 | char[2] | id | string literal + +0x1622 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1620 | 74 E0 FF FF | SOffset32 | 0xFFFFE074 (-8076) Loc: 0x35AC | offset to vtable - +0x1624 | 00 00 00 | uint8_t[3] | ... | padding - +0x1627 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) - +0x1628 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x162C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x1630 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1624 | 58 E0 FF FF | SOffset32 | 0xFFFFE058 (-8104) Loc: 0x35CC | offset to vtable + +0x1628 | 00 00 00 | uint8_t[3] | ... | padding + +0x162B | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) + +0x162C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x1630 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x1634 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1634 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string - +0x1638 | 61 6E 79 5F 61 6D 62 69 | char[18] | any_ambi | string literal - +0x1640 | 67 75 6F 75 73 5F 74 79 | | guous_ty - +0x1648 | 70 65 | | pe - +0x164A | 00 | char | 0x00 (0) | string terminator + +0x1638 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string + +0x163C | 61 6E 79 5F 61 6D 62 69 | char[18] | any_ambi | string literal + +0x1644 | 67 75 6F 75 73 5F 74 79 | | guous_ty + +0x164C | 70 65 | | pe + +0x164E | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x164C | 64 EA FF FF | SOffset32 | 0xFFFFEA64 (-5532) Loc: 0x2BE8 | offset to vtable - +0x1650 | 00 00 00 | uint8_t[3] | ... | padding - +0x1653 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1654 | 2C 00 | uint16_t | 0x002C (44) | table field `id` (UShort) - +0x1656 | 5C 00 | uint16_t | 0x005C (92) | table field `offset` (UShort) - +0x1658 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x1698 | offset to field `name` (string) - +0x165C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1688 | offset to field `type` (table) - +0x1660 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1664 | offset to field `attributes` (vector) + +0x1650 | 5A EA FF FF | SOffset32 | 0xFFFFEA5A (-5542) Loc: 0x2BF6 | offset to vtable + +0x1654 | 00 00 00 | uint8_t[3] | ... | padding + +0x1657 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1658 | 2C 00 | uint16_t | 0x002C (44) | table field `id` (UShort) + +0x165A | 5C 00 | uint16_t | 0x005C (92) | table field `offset` (UShort) + +0x165C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x169C | offset to field `name` (string) + +0x1660 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x168C | offset to field `type` (table) + +0x1664 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1668 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1664 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1668 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x166C | offset to table[0] + +0x1668 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x166C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1670 | offset to table[0] table (reflection.KeyValue): - +0x166C | A4 DD FF FF | SOffset32 | 0xFFFFDDA4 (-8796) Loc: 0x38C8 | offset to vtable - +0x1670 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1680 | offset to field `key` (string) - +0x1674 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1678 | offset to field `value` (string) + +0x1670 | 88 DD FF FF | SOffset32 | 0xFFFFDD88 (-8824) Loc: 0x38E8 | offset to vtable + +0x1674 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1684 | offset to field `key` (string) + +0x1678 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x167C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1678 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x167C | 34 34 | char[2] | 44 | string literal - +0x167E | 00 | char | 0x00 (0) | string terminator + +0x167C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1680 | 34 34 | char[2] | 44 | string literal + +0x1682 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1680 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1684 | 69 64 | char[2] | id | string literal - +0x1686 | 00 | char | 0x00 (0) | string terminator + +0x1684 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1688 | 69 64 | char[2] | id | string literal + +0x168A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1688 | 70 DE FF FF | SOffset32 | 0xFFFFDE70 (-8592) Loc: 0x3818 | offset to vtable - +0x168C | 00 00 00 | uint8_t[3] | ... | padding - +0x168F | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) - +0x1690 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) - +0x1694 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x168C | 54 DE FF FF | SOffset32 | 0xFFFFDE54 (-8620) Loc: 0x3838 | offset to vtable + +0x1690 | 00 00 00 | uint8_t[3] | ... | padding + +0x1693 | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) + +0x1694 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) + +0x1698 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1698 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string - +0x169C | 61 6E 79 5F 75 6E 69 71 | char[10] | any_uniq | string literal - +0x16A4 | 75 65 | | ue - +0x16A6 | 00 | char | 0x00 (0) | string terminator + +0x169C | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string + +0x16A0 | 61 6E 79 5F 75 6E 69 71 | char[10] | any_uniq | string literal + +0x16A8 | 75 65 | | ue + +0x16AA | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x16A8 | B0 EB FF FF | SOffset32 | 0xFFFFEBB0 (-5200) Loc: 0x2AF8 | offset to vtable - +0x16AC | 2B 00 | uint16_t | 0x002B (43) | table field `id` (UShort) - +0x16AE | 5A 00 | uint16_t | 0x005A (90) | table field `offset` (UShort) - +0x16B0 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x16F4 | offset to field `name` (string) - +0x16B4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x16E0 | offset to field `type` (table) - +0x16B8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x16BC | offset to field `attributes` (vector) + +0x16AC | 8E EB FF FF | SOffset32 | 0xFFFFEB8E (-5234) Loc: 0x2B1E | offset to vtable + +0x16B0 | 2B 00 | uint16_t | 0x002B (43) | table field `id` (UShort) + +0x16B2 | 5A 00 | uint16_t | 0x005A (90) | table field `offset` (UShort) + +0x16B4 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x16F8 | offset to field `name` (string) + +0x16B8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x16E4 | offset to field `type` (table) + +0x16BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x16C0 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x16BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x16C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x16C4 | offset to table[0] + +0x16C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x16C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x16C8 | offset to table[0] table (reflection.KeyValue): - +0x16C4 | FC DD FF FF | SOffset32 | 0xFFFFDDFC (-8708) Loc: 0x38C8 | offset to vtable - +0x16C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x16D8 | offset to field `key` (string) - +0x16CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x16D0 | offset to field `value` (string) + +0x16C8 | E0 DD FF FF | SOffset32 | 0xFFFFDDE0 (-8736) Loc: 0x38E8 | offset to vtable + +0x16CC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x16DC | offset to field `key` (string) + +0x16D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x16D4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x16D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x16D4 | 34 33 | char[2] | 43 | string literal - +0x16D6 | 00 | char | 0x00 (0) | string terminator + +0x16D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x16D8 | 34 33 | char[2] | 43 | string literal + +0x16DA | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x16D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x16DC | 69 64 | char[2] | id | string literal - +0x16DE | 00 | char | 0x00 (0) | string terminator + +0x16DC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x16E0 | 69 64 | char[2] | id | string literal + +0x16E2 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x16E0 | 34 E1 FF FF | SOffset32 | 0xFFFFE134 (-7884) Loc: 0x35AC | offset to vtable - +0x16E4 | 00 00 00 | uint8_t[3] | ... | padding - +0x16E7 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) - +0x16E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) - +0x16EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x16F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x16E4 | 18 E1 FF FF | SOffset32 | 0xFFFFE118 (-7912) Loc: 0x35CC | offset to vtable + +0x16E8 | 00 00 00 | uint8_t[3] | ... | padding + +0x16EB | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) + +0x16EC | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) + +0x16F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x16F4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x16F4 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string - +0x16F8 | 61 6E 79 5F 75 6E 69 71 | char[15] | any_uniq | string literal - +0x1700 | 75 65 5F 74 79 70 65 | | ue_type - +0x1707 | 00 | char | 0x00 (0) | string terminator + +0x16F8 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string + +0x16FC | 61 6E 79 5F 75 6E 69 71 | char[15] | any_uniq | string literal + +0x1704 | 75 65 5F 74 79 70 65 | | ue_type + +0x170B | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1708 | 20 EB FF FF | SOffset32 | 0xFFFFEB20 (-5344) Loc: 0x2BE8 | offset to vtable - +0x170C | 00 00 00 | uint8_t[3] | ... | padding - +0x170F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1710 | 2A 00 | uint16_t | 0x002A (42) | table field `id` (UShort) - +0x1712 | 58 00 | uint16_t | 0x0058 (88) | table field `offset` (UShort) - +0x1714 | F8 00 00 00 | UOffset32 | 0x000000F8 (248) Loc: 0x180C | offset to field `name` (string) - +0x1718 | E8 00 00 00 | UOffset32 | 0x000000E8 (232) Loc: 0x1800 | offset to field `type` (table) - +0x171C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1720 | offset to field `attributes` (vector) + +0x170C | 16 EB FF FF | SOffset32 | 0xFFFFEB16 (-5354) Loc: 0x2BF6 | offset to vtable + +0x1710 | 00 00 00 | uint8_t[3] | ... | padding + +0x1713 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1714 | 2A 00 | uint16_t | 0x002A (42) | table field `id` (UShort) + +0x1716 | 58 00 | uint16_t | 0x0058 (88) | table field `offset` (UShort) + +0x1718 | F8 00 00 00 | UOffset32 | 0x000000F8 (248) Loc: 0x1810 | offset to field `name` (string) + +0x171C | E8 00 00 00 | UOffset32 | 0x000000E8 (232) Loc: 0x1804 | offset to field `type` (table) + +0x1720 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1724 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1720 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) - +0x1724 | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: 0x17D4 | offset to table[0] - +0x1728 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: 0x17A8 | offset to table[1] - +0x172C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x177C | offset to table[2] - +0x1730 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x1754 | offset to table[3] - +0x1734 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1738 | offset to table[4] + +0x1724 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) + +0x1728 | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: 0x17D8 | offset to table[0] + +0x172C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: 0x17AC | offset to table[1] + +0x1730 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x1780 | offset to table[2] + +0x1734 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x1758 | offset to table[3] + +0x1738 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x173C | offset to table[4] table (reflection.KeyValue): - +0x1738 | 70 DE FF FF | SOffset32 | 0xFFFFDE70 (-8592) Loc: 0x38C8 | offset to vtable - +0x173C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x174C | offset to field `key` (string) - +0x1740 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1744 | offset to field `value` (string) + +0x173C | 54 DE FF FF | SOffset32 | 0xFFFFDE54 (-8620) Loc: 0x38E8 | offset to vtable + +0x1740 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1750 | offset to field `key` (string) + +0x1744 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1748 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1744 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1748 | 34 32 | char[2] | 42 | string literal - +0x174A | 00 | char | 0x00 (0) | string terminator + +0x1748 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x174C | 34 32 | char[2] | 42 | string literal + +0x174E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x174C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1750 | 69 64 | char[2] | id | string literal - +0x1752 | 00 | char | 0x00 (0) | string terminator + +0x1750 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1754 | 69 64 | char[2] | id | string literal + +0x1756 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1754 | 8C DE FF FF | SOffset32 | 0xFFFFDE8C (-8564) Loc: 0x38C8 | offset to vtable - +0x1758 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1770 | offset to field `key` (string) - +0x175C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1760 | offset to field `value` (string) + +0x1758 | 70 DE FF FF | SOffset32 | 0xFFFFDE70 (-8592) Loc: 0x38E8 | offset to vtable + +0x175C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1774 | offset to field `key` (string) + +0x1760 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1764 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1760 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1764 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x176C | 00 | char | 0x00 (0) | string terminator + +0x1764 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1768 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x1770 | 00 | char | 0x00 (0) | string terminator padding: - +0x176D | 00 00 00 | uint8_t[3] | ... | padding + +0x1771 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1770 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1774 | 68 61 73 68 | char[4] | hash | string literal - +0x1778 | 00 | char | 0x00 (0) | string terminator + +0x1774 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1778 | 68 61 73 68 | char[4] | hash | string literal + +0x177C | 00 | char | 0x00 (0) | string terminator padding: - +0x1779 | 00 00 00 | uint8_t[3] | ... | padding + +0x177D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x177C | B4 DE FF FF | SOffset32 | 0xFFFFDEB4 (-8524) Loc: 0x38C8 | offset to vtable - +0x1780 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1798 | offset to field `key` (string) - +0x1784 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1788 | offset to field `value` (string) + +0x1780 | 98 DE FF FF | SOffset32 | 0xFFFFDE98 (-8552) Loc: 0x38E8 | offset to vtable + +0x1784 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x179C | offset to field `key` (string) + +0x1788 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x178C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1788 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x178C | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x1794 | 6C 65 54 | | leT - +0x1797 | 00 | char | 0x00 (0) | string terminator + +0x178C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1790 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x1798 | 6C 65 54 | | leT + +0x179B | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1798 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x179C | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x17A4 | 00 | char | 0x00 (0) | string terminator + +0x179C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x17A0 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x17A8 | 00 | char | 0x00 (0) | string terminator padding: - +0x17A5 | 00 00 00 | uint8_t[3] | ... | padding + +0x17A9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x17A8 | E0 DE FF FF | SOffset32 | 0xFFFFDEE0 (-8480) Loc: 0x38C8 | offset to vtable - +0x17AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x17BC | offset to field `key` (string) - +0x17B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x17B4 | offset to field `value` (string) + +0x17AC | C4 DE FF FF | SOffset32 | 0xFFFFDEC4 (-8508) Loc: 0x38E8 | offset to vtable + +0x17B0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x17C0 | offset to field `key` (string) + +0x17B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x17B8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x17B4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string - +0x17B8 | 00 | char | 0x00 (0) | string terminator + +0x17B8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string + +0x17BC | 00 | char | 0x00 (0) | string terminator padding: - +0x17B9 | 00 00 00 | uint8_t[3] | ... | padding + +0x17BD | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x17BC | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x17C0 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal - +0x17C8 | 74 79 70 65 5F 67 65 74 | | type_get - +0x17D0 | 00 | char | 0x00 (0) | string terminator + +0x17C0 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x17C4 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal + +0x17CC | 74 79 70 65 5F 67 65 74 | | type_get + +0x17D4 | 00 | char | 0x00 (0) | string terminator padding: - +0x17D1 | 00 00 00 | uint8_t[3] | ... | padding + +0x17D5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x17D4 | 0C DF FF FF | SOffset32 | 0xFFFFDF0C (-8436) Loc: 0x38C8 | offset to vtable - +0x17D8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x17EC | offset to field `key` (string) - +0x17DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x17E0 | offset to field `value` (string) + +0x17D8 | F0 DE FF FF | SOffset32 | 0xFFFFDEF0 (-8464) Loc: 0x38E8 | offset to vtable + +0x17DC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x17F0 | offset to field `key` (string) + +0x17E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x17E4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x17E0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x17E4 | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x17E9 | 00 | char | 0x00 (0) | string terminator + +0x17E4 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x17E8 | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x17ED | 00 | char | 0x00 (0) | string terminator padding: - +0x17EA | 00 00 | uint8_t[2] | .. | padding + +0x17EE | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x17EC | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x17F0 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x17F8 | 74 79 70 65 | | type - +0x17FC | 00 | char | 0x00 (0) | string terminator + +0x17F0 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x17F4 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x17FC | 74 79 70 65 | | type + +0x1800 | 00 | char | 0x00 (0) | string terminator padding: - +0x17FD | 00 00 00 | uint8_t[3] | ... | padding + +0x1801 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1800 | C0 EB FF FF | SOffset32 | 0xFFFFEBC0 (-5184) Loc: 0x2C40 | offset to vtable - +0x1804 | 00 00 | uint8_t[2] | .. | padding - +0x1806 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1807 | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) - +0x1808 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x1804 | B4 EB FF FF | SOffset32 | 0xFFFFEBB4 (-5196) Loc: 0x2C50 | offset to vtable + +0x1808 | 00 00 | uint8_t[2] | .. | padding + +0x180A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x180B | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) + +0x180C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x180C | 1F 00 00 00 | uint32_t | 0x0000001F (31) | length of string - +0x1810 | 76 65 63 74 6F 72 5F 6F | char[31] | vector_o | string literal - +0x1818 | 66 5F 6E 6F 6E 5F 6F 77 | | f_non_ow - +0x1820 | 6E 69 6E 67 5F 72 65 66 | | ning_ref - +0x1828 | 65 72 65 6E 63 65 73 | | erences - +0x182F | 00 | char | 0x00 (0) | string terminator + +0x1810 | 1F 00 00 00 | uint32_t | 0x0000001F (31) | length of string + +0x1814 | 76 65 63 74 6F 72 5F 6F | char[31] | vector_o | string literal + +0x181C | 66 5F 6E 6F 6E 5F 6F 77 | | f_non_ow + +0x1824 | 6E 69 6E 67 5F 72 65 66 | | ning_ref + +0x182C | 65 72 65 6E 63 65 73 | | erences + +0x1833 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1830 | 38 ED FF FF | SOffset32 | 0xFFFFED38 (-4808) Loc: 0x2AF8 | offset to vtable - +0x1834 | 29 00 | uint16_t | 0x0029 (41) | table field `id` (UShort) - +0x1836 | 56 00 | uint16_t | 0x0056 (86) | table field `offset` (UShort) - +0x1838 | FC 00 00 00 | UOffset32 | 0x000000FC (252) Loc: 0x1934 | offset to field `name` (string) - +0x183C | E8 00 00 00 | UOffset32 | 0x000000E8 (232) Loc: 0x1924 | offset to field `type` (table) - +0x1840 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1844 | offset to field `attributes` (vector) + +0x1834 | 16 ED FF FF | SOffset32 | 0xFFFFED16 (-4842) Loc: 0x2B1E | offset to vtable + +0x1838 | 29 00 | uint16_t | 0x0029 (41) | table field `id` (UShort) + +0x183A | 56 00 | uint16_t | 0x0056 (86) | table field `offset` (UShort) + +0x183C | FC 00 00 00 | UOffset32 | 0x000000FC (252) Loc: 0x1938 | offset to field `name` (string) + +0x1840 | E8 00 00 00 | UOffset32 | 0x000000E8 (232) Loc: 0x1928 | offset to field `type` (table) + +0x1844 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1848 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1844 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) - +0x1848 | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: 0x18F8 | offset to table[0] - +0x184C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: 0x18CC | offset to table[1] - +0x1850 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x18A0 | offset to table[2] - +0x1854 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x1878 | offset to table[3] - +0x1858 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x185C | offset to table[4] + +0x1848 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) + +0x184C | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: 0x18FC | offset to table[0] + +0x1850 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: 0x18D0 | offset to table[1] + +0x1854 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x18A4 | offset to table[2] + +0x1858 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x187C | offset to table[3] + +0x185C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1860 | offset to table[4] table (reflection.KeyValue): - +0x185C | 94 DF FF FF | SOffset32 | 0xFFFFDF94 (-8300) Loc: 0x38C8 | offset to vtable - +0x1860 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1870 | offset to field `key` (string) - +0x1864 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1868 | offset to field `value` (string) + +0x1860 | 78 DF FF FF | SOffset32 | 0xFFFFDF78 (-8328) Loc: 0x38E8 | offset to vtable + +0x1864 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1874 | offset to field `key` (string) + +0x1868 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x186C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1868 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x186C | 34 31 | char[2] | 41 | string literal - +0x186E | 00 | char | 0x00 (0) | string terminator + +0x186C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1870 | 34 31 | char[2] | 41 | string literal + +0x1872 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1870 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1874 | 69 64 | char[2] | id | string literal - +0x1876 | 00 | char | 0x00 (0) | string terminator + +0x1874 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1878 | 69 64 | char[2] | id | string literal + +0x187A | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1878 | B0 DF FF FF | SOffset32 | 0xFFFFDFB0 (-8272) Loc: 0x38C8 | offset to vtable - +0x187C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1894 | offset to field `key` (string) - +0x1880 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1884 | offset to field `value` (string) + +0x187C | 94 DF FF FF | SOffset32 | 0xFFFFDF94 (-8300) Loc: 0x38E8 | offset to vtable + +0x1880 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1898 | offset to field `key` (string) + +0x1884 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1888 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1884 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1888 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x1890 | 00 | char | 0x00 (0) | string terminator + +0x1888 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x188C | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x1894 | 00 | char | 0x00 (0) | string terminator padding: - +0x1891 | 00 00 00 | uint8_t[3] | ... | padding + +0x1895 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1894 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1898 | 68 61 73 68 | char[4] | hash | string literal - +0x189C | 00 | char | 0x00 (0) | string terminator + +0x1898 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x189C | 68 61 73 68 | char[4] | hash | string literal + +0x18A0 | 00 | char | 0x00 (0) | string terminator padding: - +0x189D | 00 00 00 | uint8_t[3] | ... | padding + +0x18A1 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x18A0 | D8 DF FF FF | SOffset32 | 0xFFFFDFD8 (-8232) Loc: 0x38C8 | offset to vtable - +0x18A4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x18BC | offset to field `key` (string) - +0x18A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x18AC | offset to field `value` (string) + +0x18A4 | BC DF FF FF | SOffset32 | 0xFFFFDFBC (-8260) Loc: 0x38E8 | offset to vtable + +0x18A8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x18C0 | offset to field `key` (string) + +0x18AC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x18B0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x18AC | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x18B0 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x18B8 | 6C 65 54 | | leT - +0x18BB | 00 | char | 0x00 (0) | string terminator + +0x18B0 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x18B4 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x18BC | 6C 65 54 | | leT + +0x18BF | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x18BC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x18C0 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x18C8 | 00 | char | 0x00 (0) | string terminator + +0x18C0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x18C4 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x18CC | 00 | char | 0x00 (0) | string terminator padding: - +0x18C9 | 00 00 00 | uint8_t[3] | ... | padding + +0x18CD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x18CC | 04 E0 FF FF | SOffset32 | 0xFFFFE004 (-8188) Loc: 0x38C8 | offset to vtable - +0x18D0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x18E0 | offset to field `key` (string) - +0x18D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x18D8 | offset to field `value` (string) + +0x18D0 | E8 DF FF FF | SOffset32 | 0xFFFFDFE8 (-8216) Loc: 0x38E8 | offset to vtable + +0x18D4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x18E4 | offset to field `key` (string) + +0x18D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x18DC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x18D8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string - +0x18DC | 00 | char | 0x00 (0) | string terminator + +0x18DC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string + +0x18E0 | 00 | char | 0x00 (0) | string terminator padding: - +0x18DD | 00 00 00 | uint8_t[3] | ... | padding + +0x18E1 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x18E0 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x18E4 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal - +0x18EC | 74 79 70 65 5F 67 65 74 | | type_get - +0x18F4 | 00 | char | 0x00 (0) | string terminator + +0x18E4 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x18E8 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal + +0x18F0 | 74 79 70 65 5F 67 65 74 | | type_get + +0x18F8 | 00 | char | 0x00 (0) | string terminator padding: - +0x18F5 | 00 00 00 | uint8_t[3] | ... | padding + +0x18F9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x18F8 | 30 E0 FF FF | SOffset32 | 0xFFFFE030 (-8144) Loc: 0x38C8 | offset to vtable - +0x18FC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x1910 | offset to field `key` (string) - +0x1900 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1904 | offset to field `value` (string) + +0x18FC | 14 E0 FF FF | SOffset32 | 0xFFFFE014 (-8172) Loc: 0x38E8 | offset to vtable + +0x1900 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x1914 | offset to field `key` (string) + +0x1904 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1908 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1904 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x1908 | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x190D | 00 | char | 0x00 (0) | string terminator + +0x1908 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x190C | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x1911 | 00 | char | 0x00 (0) | string terminator padding: - +0x190E | 00 00 | uint8_t[2] | .. | padding + +0x1912 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1910 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1914 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x191C | 74 79 70 65 | | type - +0x1920 | 00 | char | 0x00 (0) | string terminator + +0x1914 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1918 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1920 | 74 79 70 65 | | type + +0x1924 | 00 | char | 0x00 (0) | string terminator padding: - +0x1921 | 00 00 00 | uint8_t[3] | ... | padding + +0x1925 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1924 | B0 E2 FF FF | SOffset32 | 0xFFFFE2B0 (-7504) Loc: 0x3674 | offset to vtable - +0x1928 | 00 00 00 | uint8_t[3] | ... | padding - +0x192B | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x192C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x1930 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1928 | 94 E2 FF FF | SOffset32 | 0xFFFFE294 (-7532) Loc: 0x3694 | offset to vtable + +0x192C | 00 00 00 | uint8_t[3] | ... | padding + +0x192F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x1930 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x1934 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1934 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string - +0x1938 | 6E 6F 6E 5F 6F 77 6E 69 | char[20] | non_owni | string literal - +0x1940 | 6E 67 5F 72 65 66 65 72 | | ng_refer - +0x1948 | 65 6E 63 65 | | ence - +0x194C | 00 | char | 0x00 (0) | string terminator + +0x1938 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string + +0x193C | 6E 6F 6E 5F 6F 77 6E 69 | char[20] | non_owni | string literal + +0x1944 | 6E 67 5F 72 65 66 65 72 | | ng_refer + +0x194C | 65 6E 63 65 | | ence + +0x1950 | 00 | char | 0x00 (0) | string terminator padding: - +0x194D | 00 00 00 | uint8_t[3] | ... | padding + +0x1951 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1950 | 68 ED FF FF | SOffset32 | 0xFFFFED68 (-4760) Loc: 0x2BE8 | offset to vtable - +0x1954 | 00 00 00 | uint8_t[3] | ... | padding - +0x1957 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1958 | 28 00 | uint16_t | 0x0028 (40) | table field `id` (UShort) - +0x195A | 54 00 | uint16_t | 0x0054 (84) | table field `offset` (UShort) - +0x195C | 08 01 00 00 | UOffset32 | 0x00000108 (264) Loc: 0x1A64 | offset to field `name` (string) - +0x1960 | F8 00 00 00 | UOffset32 | 0x000000F8 (248) Loc: 0x1A58 | offset to field `type` (table) - +0x1964 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1968 | offset to field `attributes` (vector) + +0x1954 | 5E ED FF FF | SOffset32 | 0xFFFFED5E (-4770) Loc: 0x2BF6 | offset to vtable + +0x1958 | 00 00 00 | uint8_t[3] | ... | padding + +0x195B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x195C | 28 00 | uint16_t | 0x0028 (40) | table field `id` (UShort) + +0x195E | 54 00 | uint16_t | 0x0054 (84) | table field `offset` (UShort) + +0x1960 | 08 01 00 00 | UOffset32 | 0x00000108 (264) Loc: 0x1A68 | offset to field `name` (string) + +0x1964 | F8 00 00 00 | UOffset32 | 0x000000F8 (248) Loc: 0x1A5C | offset to field `type` (table) + +0x1968 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x196C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1968 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) - +0x196C | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: 0x1A20 | offset to table[0] - +0x1970 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: 0x19F0 | offset to table[1] - +0x1974 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x19C4 | offset to table[2] - +0x1978 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x199C | offset to table[3] - +0x197C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1980 | offset to table[4] + +0x196C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) + +0x1970 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: 0x1A24 | offset to table[0] + +0x1974 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: 0x19F4 | offset to table[1] + +0x1978 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x19C8 | offset to table[2] + +0x197C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x19A0 | offset to table[3] + +0x1980 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1984 | offset to table[4] table (reflection.KeyValue): - +0x1980 | B8 E0 FF FF | SOffset32 | 0xFFFFE0B8 (-8008) Loc: 0x38C8 | offset to vtable - +0x1984 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1994 | offset to field `key` (string) - +0x1988 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x198C | offset to field `value` (string) + +0x1984 | 9C E0 FF FF | SOffset32 | 0xFFFFE09C (-8036) Loc: 0x38E8 | offset to vtable + +0x1988 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1998 | offset to field `key` (string) + +0x198C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1990 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x198C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1990 | 34 30 | char[2] | 40 | string literal - +0x1992 | 00 | char | 0x00 (0) | string terminator + +0x1990 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1994 | 34 30 | char[2] | 40 | string literal + +0x1996 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1994 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1998 | 69 64 | char[2] | id | string literal - +0x199A | 00 | char | 0x00 (0) | string terminator + +0x1998 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x199C | 69 64 | char[2] | id | string literal + +0x199E | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x199C | D4 E0 FF FF | SOffset32 | 0xFFFFE0D4 (-7980) Loc: 0x38C8 | offset to vtable - +0x19A0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x19B8 | offset to field `key` (string) - +0x19A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x19A8 | offset to field `value` (string) + +0x19A0 | B8 E0 FF FF | SOffset32 | 0xFFFFE0B8 (-8008) Loc: 0x38E8 | offset to vtable + +0x19A4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x19BC | offset to field `key` (string) + +0x19A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x19AC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x19A8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x19AC | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x19B4 | 00 | char | 0x00 (0) | string terminator + +0x19AC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x19B0 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x19B8 | 00 | char | 0x00 (0) | string terminator padding: - +0x19B5 | 00 00 00 | uint8_t[3] | ... | padding + +0x19B9 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x19B8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x19BC | 68 61 73 68 | char[4] | hash | string literal - +0x19C0 | 00 | char | 0x00 (0) | string terminator + +0x19BC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x19C0 | 68 61 73 68 | char[4] | hash | string literal + +0x19C4 | 00 | char | 0x00 (0) | string terminator padding: - +0x19C1 | 00 00 00 | uint8_t[3] | ... | padding + +0x19C5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x19C4 | FC E0 FF FF | SOffset32 | 0xFFFFE0FC (-7940) Loc: 0x38C8 | offset to vtable - +0x19C8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x19E0 | offset to field `key` (string) - +0x19CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x19D0 | offset to field `value` (string) + +0x19C8 | E0 E0 FF FF | SOffset32 | 0xFFFFE0E0 (-7968) Loc: 0x38E8 | offset to vtable + +0x19CC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x19E4 | offset to field `key` (string) + +0x19D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x19D4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x19D0 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x19D4 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x19DC | 6C 65 54 | | leT - +0x19DF | 00 | char | 0x00 (0) | string terminator + +0x19D4 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x19D8 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x19E0 | 6C 65 54 | | leT + +0x19E3 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x19E0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x19E4 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x19EC | 00 | char | 0x00 (0) | string terminator + +0x19E4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x19E8 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x19F0 | 00 | char | 0x00 (0) | string terminator padding: - +0x19ED | 00 00 00 | uint8_t[3] | ... | padding + +0x19F1 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x19F0 | 28 E1 FF FF | SOffset32 | 0xFFFFE128 (-7896) Loc: 0x38C8 | offset to vtable - +0x19F4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x1A08 | offset to field `key` (string) - +0x19F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x19FC | offset to field `value` (string) + +0x19F4 | 0C E1 FF FF | SOffset32 | 0xFFFFE10C (-7924) Loc: 0x38E8 | offset to vtable + +0x19F8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x1A0C | offset to field `key` (string) + +0x19FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1A00 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x19FC | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x1A00 | 2E 67 65 74 28 29 | char[6] | .get() | string literal - +0x1A06 | 00 | char | 0x00 (0) | string terminator + +0x1A00 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x1A04 | 2E 67 65 74 28 29 | char[6] | .get() | string literal + +0x1A0A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1A08 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x1A0C | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal - +0x1A14 | 74 79 70 65 5F 67 65 74 | | type_get - +0x1A1C | 00 | char | 0x00 (0) | string terminator + +0x1A0C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x1A10 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal + +0x1A18 | 74 79 70 65 5F 67 65 74 | | type_get + +0x1A20 | 00 | char | 0x00 (0) | string terminator padding: - +0x1A1D | 00 00 00 | uint8_t[3] | ... | padding + +0x1A21 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1A20 | 58 E1 FF FF | SOffset32 | 0xFFFFE158 (-7848) Loc: 0x38C8 | offset to vtable - +0x1A24 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x1A44 | offset to field `key` (string) - +0x1A28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1A2C | offset to field `value` (string) + +0x1A24 | 3C E1 FF FF | SOffset32 | 0xFFFFE13C (-7876) Loc: 0x38E8 | offset to vtable + +0x1A28 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x1A48 | offset to field `key` (string) + +0x1A2C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1A30 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1A2C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x1A30 | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal - +0x1A38 | 70 74 72 5F 74 79 70 65 | | ptr_type - +0x1A40 | 00 | char | 0x00 (0) | string terminator + +0x1A30 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x1A34 | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal + +0x1A3C | 70 74 72 5F 74 79 70 65 | | ptr_type + +0x1A44 | 00 | char | 0x00 (0) | string terminator padding: - +0x1A41 | 00 00 00 | uint8_t[3] | ... | padding + +0x1A45 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1A44 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1A48 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1A50 | 74 79 70 65 | | type - +0x1A54 | 00 | char | 0x00 (0) | string terminator + +0x1A48 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1A4C | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1A54 | 74 79 70 65 | | type + +0x1A58 | 00 | char | 0x00 (0) | string terminator padding: - +0x1A55 | 00 00 00 | uint8_t[3] | ... | padding + +0x1A59 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1A58 | 18 EE FF FF | SOffset32 | 0xFFFFEE18 (-4584) Loc: 0x2C40 | offset to vtable - +0x1A5C | 00 00 | uint8_t[2] | .. | padding - +0x1A5E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1A5F | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) - +0x1A60 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x1A5C | 0C EE FF FF | SOffset32 | 0xFFFFEE0C (-4596) Loc: 0x2C50 | offset to vtable + +0x1A60 | 00 00 | uint8_t[2] | .. | padding + +0x1A62 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1A63 | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) + +0x1A64 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1A64 | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string - +0x1A68 | 76 65 63 74 6F 72 5F 6F | char[30] | vector_o | string literal - +0x1A70 | 66 5F 63 6F 5F 6F 77 6E | | f_co_own - +0x1A78 | 69 6E 67 5F 72 65 66 65 | | ing_refe - +0x1A80 | 72 65 6E 63 65 73 | | rences - +0x1A86 | 00 | char | 0x00 (0) | string terminator + +0x1A68 | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string + +0x1A6C | 76 65 63 74 6F 72 5F 6F | char[30] | vector_o | string literal + +0x1A74 | 66 5F 63 6F 5F 6F 77 6E | | f_co_own + +0x1A7C | 69 6E 67 5F 72 65 66 65 | | ing_refe + +0x1A84 | 72 65 6E 63 65 73 | | rences + +0x1A8A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1A88 | 90 EF FF FF | SOffset32 | 0xFFFFEF90 (-4208) Loc: 0x2AF8 | offset to vtable - +0x1A8C | 27 00 | uint16_t | 0x0027 (39) | table field `id` (UShort) - +0x1A8E | 52 00 | uint16_t | 0x0052 (82) | table field `offset` (UShort) - +0x1A90 | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: 0x1B5C | offset to field `name` (string) - +0x1A94 | B8 00 00 00 | UOffset32 | 0x000000B8 (184) Loc: 0x1B4C | offset to field `type` (table) - +0x1A98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1A9C | offset to field `attributes` (vector) + +0x1A8C | 6E EF FF FF | SOffset32 | 0xFFFFEF6E (-4242) Loc: 0x2B1E | offset to vtable + +0x1A90 | 27 00 | uint16_t | 0x0027 (39) | table field `id` (UShort) + +0x1A92 | 52 00 | uint16_t | 0x0052 (82) | table field `offset` (UShort) + +0x1A94 | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: 0x1B60 | offset to field `name` (string) + +0x1A98 | B8 00 00 00 | UOffset32 | 0x000000B8 (184) Loc: 0x1B50 | offset to field `type` (table) + +0x1A9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1AA0 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1A9C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x1AA0 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: 0x1B20 | offset to table[0] - +0x1AA4 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x1AF4 | offset to table[1] - +0x1AA8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x1ACC | offset to table[2] - +0x1AAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1AB0 | offset to table[3] + +0x1AA0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x1AA4 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: 0x1B24 | offset to table[0] + +0x1AA8 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x1AF8 | offset to table[1] + +0x1AAC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x1AD0 | offset to table[2] + +0x1AB0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1AB4 | offset to table[3] table (reflection.KeyValue): - +0x1AB0 | E8 E1 FF FF | SOffset32 | 0xFFFFE1E8 (-7704) Loc: 0x38C8 | offset to vtable - +0x1AB4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1AC4 | offset to field `key` (string) - +0x1AB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1ABC | offset to field `value` (string) + +0x1AB4 | CC E1 FF FF | SOffset32 | 0xFFFFE1CC (-7732) Loc: 0x38E8 | offset to vtable + +0x1AB8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1AC8 | offset to field `key` (string) + +0x1ABC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1AC0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1ABC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1AC0 | 33 39 | char[2] | 39 | string literal - +0x1AC2 | 00 | char | 0x00 (0) | string terminator + +0x1AC0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1AC4 | 33 39 | char[2] | 39 | string literal + +0x1AC6 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1AC4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1AC8 | 69 64 | char[2] | id | string literal - +0x1ACA | 00 | char | 0x00 (0) | string terminator + +0x1AC8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1ACC | 69 64 | char[2] | id | string literal + +0x1ACE | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1ACC | 04 E2 FF FF | SOffset32 | 0xFFFFE204 (-7676) Loc: 0x38C8 | offset to vtable - +0x1AD0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1AE8 | offset to field `key` (string) - +0x1AD4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1AD8 | offset to field `value` (string) + +0x1AD0 | E8 E1 FF FF | SOffset32 | 0xFFFFE1E8 (-7704) Loc: 0x38E8 | offset to vtable + +0x1AD4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1AEC | offset to field `key` (string) + +0x1AD8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1ADC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1AD8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1ADC | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x1AE4 | 00 | char | 0x00 (0) | string terminator + +0x1ADC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1AE0 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x1AE8 | 00 | char | 0x00 (0) | string terminator padding: - +0x1AE5 | 00 00 00 | uint8_t[3] | ... | padding + +0x1AE9 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1AE8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1AEC | 68 61 73 68 | char[4] | hash | string literal - +0x1AF0 | 00 | char | 0x00 (0) | string terminator + +0x1AEC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1AF0 | 68 61 73 68 | char[4] | hash | string literal + +0x1AF4 | 00 | char | 0x00 (0) | string terminator padding: - +0x1AF1 | 00 00 00 | uint8_t[3] | ... | padding + +0x1AF5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1AF4 | 2C E2 FF FF | SOffset32 | 0xFFFFE22C (-7636) Loc: 0x38C8 | offset to vtable - +0x1AF8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1B10 | offset to field `key` (string) - +0x1AFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1B00 | offset to field `value` (string) + +0x1AF8 | 10 E2 FF FF | SOffset32 | 0xFFFFE210 (-7664) Loc: 0x38E8 | offset to vtable + +0x1AFC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1B14 | offset to field `key` (string) + +0x1B00 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1B04 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1B00 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1B04 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x1B0C | 6C 65 54 | | leT - +0x1B0F | 00 | char | 0x00 (0) | string terminator + +0x1B04 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1B08 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x1B10 | 6C 65 54 | | leT + +0x1B13 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1B10 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1B14 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x1B1C | 00 | char | 0x00 (0) | string terminator + +0x1B14 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1B18 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x1B20 | 00 | char | 0x00 (0) | string terminator padding: - +0x1B1D | 00 00 00 | uint8_t[3] | ... | padding + +0x1B21 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1B20 | 58 E2 FF FF | SOffset32 | 0xFFFFE258 (-7592) Loc: 0x38C8 | offset to vtable - +0x1B24 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x1B38 | offset to field `key` (string) - +0x1B28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1B2C | offset to field `value` (string) + +0x1B24 | 3C E2 FF FF | SOffset32 | 0xFFFFE23C (-7620) Loc: 0x38E8 | offset to vtable + +0x1B28 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x1B3C | offset to field `key` (string) + +0x1B2C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1B30 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1B2C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x1B30 | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x1B35 | 00 | char | 0x00 (0) | string terminator + +0x1B30 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x1B34 | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x1B39 | 00 | char | 0x00 (0) | string terminator padding: - +0x1B36 | 00 00 | uint8_t[2] | .. | padding + +0x1B3A | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1B38 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1B3C | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1B44 | 74 79 70 65 | | type - +0x1B48 | 00 | char | 0x00 (0) | string terminator + +0x1B3C | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1B40 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1B48 | 74 79 70 65 | | type + +0x1B4C | 00 | char | 0x00 (0) | string terminator padding: - +0x1B49 | 00 00 00 | uint8_t[3] | ... | padding + +0x1B4D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1B4C | D8 E4 FF FF | SOffset32 | 0xFFFFE4D8 (-6952) Loc: 0x3674 | offset to vtable - +0x1B50 | 00 00 00 | uint8_t[3] | ... | padding - +0x1B53 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x1B54 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x1B58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1B50 | BC E4 FF FF | SOffset32 | 0xFFFFE4BC (-6980) Loc: 0x3694 | offset to vtable + +0x1B54 | 00 00 00 | uint8_t[3] | ... | padding + +0x1B57 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x1B58 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x1B5C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1B5C | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x1B60 | 63 6F 5F 6F 77 6E 69 6E | char[19] | co_ownin | string literal - +0x1B68 | 67 5F 72 65 66 65 72 65 | | g_refere - +0x1B70 | 6E 63 65 | | nce - +0x1B73 | 00 | char | 0x00 (0) | string terminator + +0x1B60 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x1B64 | 63 6F 5F 6F 77 6E 69 6E | char[19] | co_ownin | string literal + +0x1B6C | 67 5F 72 65 66 65 72 65 | | g_refere + +0x1B74 | 6E 63 65 | | nce + +0x1B77 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1B74 | 8C EF FF FF | SOffset32 | 0xFFFFEF8C (-4212) Loc: 0x2BE8 | offset to vtable - +0x1B78 | 00 00 00 | uint8_t[3] | ... | padding - +0x1B7B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1B7C | 26 00 | uint16_t | 0x0026 (38) | table field `id` (UShort) - +0x1B7E | 50 00 | uint16_t | 0x0050 (80) | table field `offset` (UShort) - +0x1B80 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: 0x1BFC | offset to field `name` (string) - +0x1B84 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: 0x1BEC | offset to field `type` (table) - +0x1B88 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1B8C | offset to field `attributes` (vector) + +0x1B78 | 82 EF FF FF | SOffset32 | 0xFFFFEF82 (-4222) Loc: 0x2BF6 | offset to vtable + +0x1B7C | 00 00 00 | uint8_t[3] | ... | padding + +0x1B7F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1B80 | 26 00 | uint16_t | 0x0026 (38) | table field `id` (UShort) + +0x1B82 | 50 00 | uint16_t | 0x0050 (80) | table field `offset` (UShort) + +0x1B84 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: 0x1C00 | offset to field `name` (string) + +0x1B88 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: 0x1BF0 | offset to field `type` (table) + +0x1B8C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1B90 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1B8C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x1B90 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x1BB4 | offset to table[0] - +0x1B94 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1B98 | offset to table[1] + +0x1B90 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x1B94 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x1BB8 | offset to table[0] + +0x1B98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1B9C | offset to table[1] table (reflection.KeyValue): - +0x1B98 | D0 E2 FF FF | SOffset32 | 0xFFFFE2D0 (-7472) Loc: 0x38C8 | offset to vtable - +0x1B9C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1BAC | offset to field `key` (string) - +0x1BA0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1BA4 | offset to field `value` (string) + +0x1B9C | B4 E2 FF FF | SOffset32 | 0xFFFFE2B4 (-7500) Loc: 0x38E8 | offset to vtable + +0x1BA0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1BB0 | offset to field `key` (string) + +0x1BA4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1BA8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1BA4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1BA8 | 33 38 | char[2] | 38 | string literal - +0x1BAA | 00 | char | 0x00 (0) | string terminator + +0x1BA8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1BAC | 33 38 | char[2] | 38 | string literal + +0x1BAE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1BAC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1BB0 | 69 64 | char[2] | id | string literal - +0x1BB2 | 00 | char | 0x00 (0) | string terminator + +0x1BB0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1BB4 | 69 64 | char[2] | id | string literal + +0x1BB6 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1BB4 | EC E2 FF FF | SOffset32 | 0xFFFFE2EC (-7444) Loc: 0x38C8 | offset to vtable - +0x1BB8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x1BD8 | offset to field `key` (string) - +0x1BBC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1BC0 | offset to field `value` (string) + +0x1BB8 | D0 E2 FF FF | SOffset32 | 0xFFFFE2D0 (-7472) Loc: 0x38E8 | offset to vtable + +0x1BBC | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x1BDC | offset to field `key` (string) + +0x1BC0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1BC4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1BC0 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x1BC4 | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal - +0x1BCC | 70 74 72 5F 74 79 70 65 | | ptr_type - +0x1BD4 | 00 | char | 0x00 (0) | string terminator + +0x1BC4 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x1BC8 | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal + +0x1BD0 | 70 74 72 5F 74 79 70 65 | | ptr_type + +0x1BD8 | 00 | char | 0x00 (0) | string terminator padding: - +0x1BD5 | 00 00 00 | uint8_t[3] | ... | padding + +0x1BD9 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1BD8 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1BDC | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1BE4 | 74 79 70 65 | | type - +0x1BE8 | 00 | char | 0x00 (0) | string terminator + +0x1BDC | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1BE0 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1BE8 | 74 79 70 65 | | type + +0x1BEC | 00 | char | 0x00 (0) | string terminator padding: - +0x1BE9 | 00 00 00 | uint8_t[3] | ... | padding + +0x1BED | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1BEC | 78 F1 FF FF | SOffset32 | 0xFFFFF178 (-3720) Loc: 0x2A74 | offset to vtable - +0x1BF0 | 00 00 | uint8_t[2] | .. | padding - +0x1BF2 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1BF3 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x1BF4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) - +0x1BF8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x1BF0 | 54 F1 FF FF | SOffset32 | 0xFFFFF154 (-3756) Loc: 0x2A9C | offset to vtable + +0x1BF4 | 00 00 | uint8_t[2] | .. | padding + +0x1BF6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1BF7 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x1BF8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) + +0x1BFC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1BFC | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string - +0x1C00 | 76 65 63 74 6F 72 5F 6F | char[28] | vector_o | string literal - +0x1C08 | 66 5F 73 74 72 6F 6E 67 | | f_strong - +0x1C10 | 5F 72 65 66 65 72 72 61 | | _referra - +0x1C18 | 62 6C 65 73 | | bles - +0x1C1C | 00 | char | 0x00 (0) | string terminator + +0x1C00 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string + +0x1C04 | 76 65 63 74 6F 72 5F 6F | char[28] | vector_o | string literal + +0x1C0C | 66 5F 73 74 72 6F 6E 67 | | f_strong + +0x1C14 | 5F 72 65 66 65 72 72 61 | | _referra + +0x1C1C | 62 6C 65 73 | | bles + +0x1C20 | 00 | char | 0x00 (0) | string terminator padding: - +0x1C1D | 00 00 00 | uint8_t[3] | ... | padding + +0x1C21 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1C20 | 38 F0 FF FF | SOffset32 | 0xFFFFF038 (-4040) Loc: 0x2BE8 | offset to vtable - +0x1C24 | 00 00 00 | uint8_t[3] | ... | padding - +0x1C27 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1C28 | 25 00 | uint16_t | 0x0025 (37) | table field `id` (UShort) - +0x1C2A | 4E 00 | uint16_t | 0x004E (78) | table field `offset` (UShort) - +0x1C2C | C8 00 00 00 | UOffset32 | 0x000000C8 (200) Loc: 0x1CF4 | offset to field `name` (string) - +0x1C30 | B8 00 00 00 | UOffset32 | 0x000000B8 (184) Loc: 0x1CE8 | offset to field `type` (table) - +0x1C34 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1C38 | offset to field `attributes` (vector) + +0x1C24 | 2E F0 FF FF | SOffset32 | 0xFFFFF02E (-4050) Loc: 0x2BF6 | offset to vtable + +0x1C28 | 00 00 00 | uint8_t[3] | ... | padding + +0x1C2B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1C2C | 25 00 | uint16_t | 0x0025 (37) | table field `id` (UShort) + +0x1C2E | 4E 00 | uint16_t | 0x004E (78) | table field `offset` (UShort) + +0x1C30 | C8 00 00 00 | UOffset32 | 0x000000C8 (200) Loc: 0x1CF8 | offset to field `name` (string) + +0x1C34 | B8 00 00 00 | UOffset32 | 0x000000B8 (184) Loc: 0x1CEC | offset to field `type` (table) + +0x1C38 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1C3C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1C38 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x1C3C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: 0x1CBC | offset to table[0] - +0x1C40 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x1C90 | offset to table[1] - +0x1C44 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x1C68 | offset to table[2] - +0x1C48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1C4C | offset to table[3] + +0x1C3C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x1C40 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: 0x1CC0 | offset to table[0] + +0x1C44 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x1C94 | offset to table[1] + +0x1C48 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x1C6C | offset to table[2] + +0x1C4C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1C50 | offset to table[3] table (reflection.KeyValue): - +0x1C4C | 84 E3 FF FF | SOffset32 | 0xFFFFE384 (-7292) Loc: 0x38C8 | offset to vtable - +0x1C50 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1C60 | offset to field `key` (string) - +0x1C54 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1C58 | offset to field `value` (string) + +0x1C50 | 68 E3 FF FF | SOffset32 | 0xFFFFE368 (-7320) Loc: 0x38E8 | offset to vtable + +0x1C54 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1C64 | offset to field `key` (string) + +0x1C58 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1C5C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1C58 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1C5C | 33 37 | char[2] | 37 | string literal - +0x1C5E | 00 | char | 0x00 (0) | string terminator + +0x1C5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1C60 | 33 37 | char[2] | 37 | string literal + +0x1C62 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1C60 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1C64 | 69 64 | char[2] | id | string literal - +0x1C66 | 00 | char | 0x00 (0) | string terminator + +0x1C64 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1C68 | 69 64 | char[2] | id | string literal + +0x1C6A | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1C68 | A0 E3 FF FF | SOffset32 | 0xFFFFE3A0 (-7264) Loc: 0x38C8 | offset to vtable - +0x1C6C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1C84 | offset to field `key` (string) - +0x1C70 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1C74 | offset to field `value` (string) + +0x1C6C | 84 E3 FF FF | SOffset32 | 0xFFFFE384 (-7292) Loc: 0x38E8 | offset to vtable + +0x1C70 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1C88 | offset to field `key` (string) + +0x1C74 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1C78 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1C74 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1C78 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x1C80 | 00 | char | 0x00 (0) | string terminator + +0x1C78 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1C7C | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x1C84 | 00 | char | 0x00 (0) | string terminator padding: - +0x1C81 | 00 00 00 | uint8_t[3] | ... | padding + +0x1C85 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1C84 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1C88 | 68 61 73 68 | char[4] | hash | string literal - +0x1C8C | 00 | char | 0x00 (0) | string terminator + +0x1C88 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1C8C | 68 61 73 68 | char[4] | hash | string literal + +0x1C90 | 00 | char | 0x00 (0) | string terminator padding: - +0x1C8D | 00 00 00 | uint8_t[3] | ... | padding + +0x1C91 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1C90 | C8 E3 FF FF | SOffset32 | 0xFFFFE3C8 (-7224) Loc: 0x38C8 | offset to vtable - +0x1C94 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1CAC | offset to field `key` (string) - +0x1C98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1C9C | offset to field `value` (string) + +0x1C94 | AC E3 FF FF | SOffset32 | 0xFFFFE3AC (-7252) Loc: 0x38E8 | offset to vtable + +0x1C98 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1CB0 | offset to field `key` (string) + +0x1C9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1CA0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1C9C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1CA0 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x1CA8 | 6C 65 54 | | leT - +0x1CAB | 00 | char | 0x00 (0) | string terminator + +0x1CA0 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1CA4 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x1CAC | 6C 65 54 | | leT + +0x1CAF | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1CAC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1CB0 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x1CB8 | 00 | char | 0x00 (0) | string terminator + +0x1CB0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1CB4 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x1CBC | 00 | char | 0x00 (0) | string terminator padding: - +0x1CB9 | 00 00 00 | uint8_t[3] | ... | padding + +0x1CBD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1CBC | F4 E3 FF FF | SOffset32 | 0xFFFFE3F4 (-7180) Loc: 0x38C8 | offset to vtable - +0x1CC0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x1CD4 | offset to field `key` (string) - +0x1CC4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1CC8 | offset to field `value` (string) + +0x1CC0 | D8 E3 FF FF | SOffset32 | 0xFFFFE3D8 (-7208) Loc: 0x38E8 | offset to vtable + +0x1CC4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x1CD8 | offset to field `key` (string) + +0x1CC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1CCC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1CC8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x1CCC | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x1CD1 | 00 | char | 0x00 (0) | string terminator + +0x1CCC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x1CD0 | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x1CD5 | 00 | char | 0x00 (0) | string terminator padding: - +0x1CD2 | 00 00 | uint8_t[2] | .. | padding + +0x1CD6 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1CD4 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1CD8 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1CE0 | 74 79 70 65 | | type - +0x1CE4 | 00 | char | 0x00 (0) | string terminator + +0x1CD8 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1CDC | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1CE4 | 74 79 70 65 | | type + +0x1CE8 | 00 | char | 0x00 (0) | string terminator padding: - +0x1CE5 | 00 00 00 | uint8_t[3] | ... | padding + +0x1CE9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1CE8 | A8 F0 FF FF | SOffset32 | 0xFFFFF0A8 (-3928) Loc: 0x2C40 | offset to vtable - +0x1CEC | 00 00 | uint8_t[2] | .. | padding - +0x1CEE | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1CEF | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) - +0x1CF0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x1CEC | 9C F0 FF FF | SOffset32 | 0xFFFFF09C (-3940) Loc: 0x2C50 | offset to vtable + +0x1CF0 | 00 00 | uint8_t[2] | .. | padding + +0x1CF2 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1CF3 | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) + +0x1CF4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1CF4 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string - +0x1CF8 | 76 65 63 74 6F 72 5F 6F | char[25] | vector_o | string literal - +0x1D00 | 66 5F 77 65 61 6B 5F 72 | | f_weak_r - +0x1D08 | 65 66 65 72 65 6E 63 65 | | eference - +0x1D10 | 73 | | s - +0x1D11 | 00 | char | 0x00 (0) | string terminator + +0x1CF8 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string + +0x1CFC | 76 65 63 74 6F 72 5F 6F | char[25] | vector_o | string literal + +0x1D04 | 66 5F 77 65 61 6B 5F 72 | | f_weak_r + +0x1D0C | 65 66 65 72 65 6E 63 65 | | eference + +0x1D14 | 73 | | s + +0x1D15 | 00 | char | 0x00 (0) | string terminator padding: - +0x1D12 | 00 00 | uint8_t[2] | .. | padding + +0x1D16 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1D14 | 1C F2 FF FF | SOffset32 | 0xFFFFF21C (-3556) Loc: 0x2AF8 | offset to vtable - +0x1D18 | 24 00 | uint16_t | 0x0024 (36) | table field `id` (UShort) - +0x1D1A | 4C 00 | uint16_t | 0x004C (76) | table field `offset` (UShort) - +0x1D1C | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: 0x1DE8 | offset to field `name` (string) - +0x1D20 | B8 00 00 00 | UOffset32 | 0x000000B8 (184) Loc: 0x1DD8 | offset to field `type` (table) - +0x1D24 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1D28 | offset to field `attributes` (vector) + +0x1D18 | FA F1 FF FF | SOffset32 | 0xFFFFF1FA (-3590) Loc: 0x2B1E | offset to vtable + +0x1D1C | 24 00 | uint16_t | 0x0024 (36) | table field `id` (UShort) + +0x1D1E | 4C 00 | uint16_t | 0x004C (76) | table field `offset` (UShort) + +0x1D20 | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: 0x1DEC | offset to field `name` (string) + +0x1D24 | B8 00 00 00 | UOffset32 | 0x000000B8 (184) Loc: 0x1DDC | offset to field `type` (table) + +0x1D28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1D2C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1D28 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x1D2C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: 0x1DAC | offset to table[0] - +0x1D30 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x1D80 | offset to table[1] - +0x1D34 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x1D58 | offset to table[2] - +0x1D38 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1D3C | offset to table[3] + +0x1D2C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x1D30 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: 0x1DB0 | offset to table[0] + +0x1D34 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x1D84 | offset to table[1] + +0x1D38 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x1D5C | offset to table[2] + +0x1D3C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1D40 | offset to table[3] table (reflection.KeyValue): - +0x1D3C | 74 E4 FF FF | SOffset32 | 0xFFFFE474 (-7052) Loc: 0x38C8 | offset to vtable - +0x1D40 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1D50 | offset to field `key` (string) - +0x1D44 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1D48 | offset to field `value` (string) + +0x1D40 | 58 E4 FF FF | SOffset32 | 0xFFFFE458 (-7080) Loc: 0x38E8 | offset to vtable + +0x1D44 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1D54 | offset to field `key` (string) + +0x1D48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1D4C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1D48 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1D4C | 33 36 | char[2] | 36 | string literal - +0x1D4E | 00 | char | 0x00 (0) | string terminator + +0x1D4C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1D50 | 33 36 | char[2] | 36 | string literal + +0x1D52 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1D50 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1D54 | 69 64 | char[2] | id | string literal - +0x1D56 | 00 | char | 0x00 (0) | string terminator + +0x1D54 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1D58 | 69 64 | char[2] | id | string literal + +0x1D5A | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1D58 | 90 E4 FF FF | SOffset32 | 0xFFFFE490 (-7024) Loc: 0x38C8 | offset to vtable - +0x1D5C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1D74 | offset to field `key` (string) - +0x1D60 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1D64 | offset to field `value` (string) + +0x1D5C | 74 E4 FF FF | SOffset32 | 0xFFFFE474 (-7052) Loc: 0x38E8 | offset to vtable + +0x1D60 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1D78 | offset to field `key` (string) + +0x1D64 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1D68 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1D64 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1D68 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x1D70 | 00 | char | 0x00 (0) | string terminator + +0x1D68 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1D6C | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x1D74 | 00 | char | 0x00 (0) | string terminator padding: - +0x1D71 | 00 00 00 | uint8_t[3] | ... | padding + +0x1D75 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1D74 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1D78 | 68 61 73 68 | char[4] | hash | string literal - +0x1D7C | 00 | char | 0x00 (0) | string terminator + +0x1D78 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1D7C | 68 61 73 68 | char[4] | hash | string literal + +0x1D80 | 00 | char | 0x00 (0) | string terminator padding: - +0x1D7D | 00 00 00 | uint8_t[3] | ... | padding + +0x1D81 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1D80 | B8 E4 FF FF | SOffset32 | 0xFFFFE4B8 (-6984) Loc: 0x38C8 | offset to vtable - +0x1D84 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1D9C | offset to field `key` (string) - +0x1D88 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1D8C | offset to field `value` (string) + +0x1D84 | 9C E4 FF FF | SOffset32 | 0xFFFFE49C (-7012) Loc: 0x38E8 | offset to vtable + +0x1D88 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1DA0 | offset to field `key` (string) + +0x1D8C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1D90 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1D8C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1D90 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x1D98 | 6C 65 54 | | leT - +0x1D9B | 00 | char | 0x00 (0) | string terminator + +0x1D90 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1D94 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x1D9C | 6C 65 54 | | leT + +0x1D9F | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1D9C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1DA0 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x1DA8 | 00 | char | 0x00 (0) | string terminator + +0x1DA0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1DA4 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x1DAC | 00 | char | 0x00 (0) | string terminator padding: - +0x1DA9 | 00 00 00 | uint8_t[3] | ... | padding + +0x1DAD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1DAC | E4 E4 FF FF | SOffset32 | 0xFFFFE4E4 (-6940) Loc: 0x38C8 | offset to vtable - +0x1DB0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x1DC4 | offset to field `key` (string) - +0x1DB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1DB8 | offset to field `value` (string) + +0x1DB0 | C8 E4 FF FF | SOffset32 | 0xFFFFE4C8 (-6968) Loc: 0x38E8 | offset to vtable + +0x1DB4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x1DC8 | offset to field `key` (string) + +0x1DB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1DBC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1DB8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x1DBC | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x1DC1 | 00 | char | 0x00 (0) | string terminator + +0x1DBC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x1DC0 | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x1DC5 | 00 | char | 0x00 (0) | string terminator padding: - +0x1DC2 | 00 00 | uint8_t[2] | .. | padding + +0x1DC6 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1DC4 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1DC8 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1DD0 | 74 79 70 65 | | type - +0x1DD4 | 00 | char | 0x00 (0) | string terminator + +0x1DC8 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1DCC | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1DD4 | 74 79 70 65 | | type + +0x1DD8 | 00 | char | 0x00 (0) | string terminator padding: - +0x1DD5 | 00 00 00 | uint8_t[3] | ... | padding + +0x1DD9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1DD8 | 64 E7 FF FF | SOffset32 | 0xFFFFE764 (-6300) Loc: 0x3674 | offset to vtable - +0x1DDC | 00 00 00 | uint8_t[3] | ... | padding - +0x1DDF | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x1DE0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x1DE4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1DDC | 48 E7 FF FF | SOffset32 | 0xFFFFE748 (-6328) Loc: 0x3694 | offset to vtable + +0x1DE0 | 00 00 00 | uint8_t[3] | ... | padding + +0x1DE3 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x1DE4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x1DE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1DE8 | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string - +0x1DEC | 73 69 6E 67 6C 65 5F 77 | char[21] | single_w | string literal - +0x1DF4 | 65 61 6B 5F 72 65 66 65 | | eak_refe - +0x1DFC | 72 65 6E 63 65 | | rence - +0x1E01 | 00 | char | 0x00 (0) | string terminator + +0x1DEC | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string + +0x1DF0 | 73 69 6E 67 6C 65 5F 77 | char[21] | single_w | string literal + +0x1DF8 | 65 61 6B 5F 72 65 66 65 | | eak_refe + +0x1E00 | 72 65 6E 63 65 | | rence + +0x1E05 | 00 | char | 0x00 (0) | string terminator padding: - +0x1E02 | 00 00 | uint8_t[2] | .. | padding + +0x1E06 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1E04 | 1C F2 FF FF | SOffset32 | 0xFFFFF21C (-3556) Loc: 0x2BE8 | offset to vtable - +0x1E08 | 00 00 00 | uint8_t[3] | ... | padding - +0x1E0B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1E0C | 23 00 | uint16_t | 0x0023 (35) | table field `id` (UShort) - +0x1E0E | 4A 00 | uint16_t | 0x004A (74) | table field `offset` (UShort) - +0x1E10 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x1E50 | offset to field `name` (string) - +0x1E14 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1E40 | offset to field `type` (table) - +0x1E18 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1E1C | offset to field `attributes` (vector) + +0x1E08 | 12 F2 FF FF | SOffset32 | 0xFFFFF212 (-3566) Loc: 0x2BF6 | offset to vtable + +0x1E0C | 00 00 00 | uint8_t[3] | ... | padding + +0x1E0F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1E10 | 23 00 | uint16_t | 0x0023 (35) | table field `id` (UShort) + +0x1E12 | 4A 00 | uint16_t | 0x004A (74) | table field `offset` (UShort) + +0x1E14 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x1E54 | offset to field `name` (string) + +0x1E18 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1E44 | offset to field `type` (table) + +0x1E1C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1E20 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1E1C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1E20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1E24 | offset to table[0] + +0x1E20 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1E24 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1E28 | offset to table[0] table (reflection.KeyValue): - +0x1E24 | 5C E5 FF FF | SOffset32 | 0xFFFFE55C (-6820) Loc: 0x38C8 | offset to vtable - +0x1E28 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1E38 | offset to field `key` (string) - +0x1E2C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1E30 | offset to field `value` (string) + +0x1E28 | 40 E5 FF FF | SOffset32 | 0xFFFFE540 (-6848) Loc: 0x38E8 | offset to vtable + +0x1E2C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1E3C | offset to field `key` (string) + +0x1E30 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1E34 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1E30 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1E34 | 33 35 | char[2] | 35 | string literal - +0x1E36 | 00 | char | 0x00 (0) | string terminator + +0x1E34 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1E38 | 33 35 | char[2] | 35 | string literal + +0x1E3A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1E38 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1E3C | 69 64 | char[2] | id | string literal - +0x1E3E | 00 | char | 0x00 (0) | string terminator + +0x1E3C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1E40 | 69 64 | char[2] | id | string literal + +0x1E42 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1E40 | CC F3 FF FF | SOffset32 | 0xFFFFF3CC (-3124) Loc: 0x2A74 | offset to vtable - +0x1E44 | 00 00 | uint8_t[2] | .. | padding - +0x1E46 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1E47 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x1E48 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) - +0x1E4C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x1E44 | A8 F3 FF FF | SOffset32 | 0xFFFFF3A8 (-3160) Loc: 0x2A9C | offset to vtable + +0x1E48 | 00 00 | uint8_t[2] | .. | padding + +0x1E4A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1E4B | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x1E4C | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) + +0x1E50 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1E50 | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string - +0x1E54 | 76 65 63 74 6F 72 5F 6F | char[21] | vector_o | string literal - +0x1E5C | 66 5F 72 65 66 65 72 72 | | f_referr - +0x1E64 | 61 62 6C 65 73 | | ables - +0x1E69 | 00 | char | 0x00 (0) | string terminator + +0x1E54 | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string + +0x1E58 | 76 65 63 74 6F 72 5F 6F | char[21] | vector_o | string literal + +0x1E60 | 66 5F 72 65 66 65 72 72 | | f_referr + +0x1E68 | 61 62 6C 65 73 | | ables + +0x1E6D | 00 | char | 0x00 (0) | string terminator padding: - +0x1E6A | 00 00 | uint8_t[2] | .. | padding + +0x1E6E | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1E6C | 84 F2 FF FF | SOffset32 | 0xFFFFF284 (-3452) Loc: 0x2BE8 | offset to vtable - +0x1E70 | 00 00 00 | uint8_t[3] | ... | padding - +0x1E73 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1E74 | 22 00 | uint16_t | 0x0022 (34) | table field `id` (UShort) - +0x1E76 | 48 00 | uint16_t | 0x0048 (72) | table field `offset` (UShort) - +0x1E78 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x1EB8 | offset to field `name` (string) - +0x1E7C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1EA8 | offset to field `type` (table) - +0x1E80 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1E84 | offset to field `attributes` (vector) + +0x1E70 | 7A F2 FF FF | SOffset32 | 0xFFFFF27A (-3462) Loc: 0x2BF6 | offset to vtable + +0x1E74 | 00 00 00 | uint8_t[3] | ... | padding + +0x1E77 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1E78 | 22 00 | uint16_t | 0x0022 (34) | table field `id` (UShort) + +0x1E7A | 48 00 | uint16_t | 0x0048 (72) | table field `offset` (UShort) + +0x1E7C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x1EBC | offset to field `name` (string) + +0x1E80 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1EAC | offset to field `type` (table) + +0x1E84 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1E88 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1E84 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1E88 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1E8C | offset to table[0] + +0x1E88 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1E8C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1E90 | offset to table[0] table (reflection.KeyValue): - +0x1E8C | C4 E5 FF FF | SOffset32 | 0xFFFFE5C4 (-6716) Loc: 0x38C8 | offset to vtable - +0x1E90 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1EA0 | offset to field `key` (string) - +0x1E94 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1E98 | offset to field `value` (string) + +0x1E90 | A8 E5 FF FF | SOffset32 | 0xFFFFE5A8 (-6744) Loc: 0x38E8 | offset to vtable + +0x1E94 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1EA4 | offset to field `key` (string) + +0x1E98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1E9C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1E98 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1E9C | 33 34 | char[2] | 34 | string literal - +0x1E9E | 00 | char | 0x00 (0) | string terminator + +0x1E9C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1EA0 | 33 34 | char[2] | 34 | string literal + +0x1EA2 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1EA0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1EA4 | 69 64 | char[2] | id | string literal - +0x1EA6 | 00 | char | 0x00 (0) | string terminator + +0x1EA4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1EA8 | 69 64 | char[2] | id | string literal + +0x1EAA | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1EA8 | 90 E6 FF FF | SOffset32 | 0xFFFFE690 (-6512) Loc: 0x3818 | offset to vtable - +0x1EAC | 00 00 00 | uint8_t[3] | ... | padding - +0x1EAF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x1EB0 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | table field `index` (Int) - +0x1EB4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1EAC | 74 E6 FF FF | SOffset32 | 0xFFFFE674 (-6540) Loc: 0x3838 | offset to vtable + +0x1EB0 | 00 00 00 | uint8_t[3] | ... | padding + +0x1EB3 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x1EB4 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | table field `index` (Int) + +0x1EB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1EB8 | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string - +0x1EBC | 70 61 72 65 6E 74 5F 6E | char[21] | parent_n | string literal - +0x1EC4 | 61 6D 65 73 70 61 63 65 | | amespace - +0x1ECC | 5F 74 65 73 74 | | _test - +0x1ED1 | 00 | char | 0x00 (0) | string terminator + +0x1EBC | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string + +0x1EC0 | 70 61 72 65 6E 74 5F 6E | char[21] | parent_n | string literal + +0x1EC8 | 61 6D 65 73 70 61 63 65 | | amespace + +0x1ED0 | 5F 74 65 73 74 | | _test + +0x1ED5 | 00 | char | 0x00 (0) | string terminator padding: - +0x1ED2 | 00 00 | uint8_t[2] | .. | padding + +0x1ED6 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1ED4 | EC F2 FF FF | SOffset32 | 0xFFFFF2EC (-3348) Loc: 0x2BE8 | offset to vtable - +0x1ED8 | 00 00 00 | uint8_t[3] | ... | padding - +0x1EDB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1EDC | 21 00 | uint16_t | 0x0021 (33) | table field `id` (UShort) - +0x1EDE | 46 00 | uint16_t | 0x0046 (70) | table field `offset` (UShort) - +0x1EE0 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x1F1C | offset to field `name` (string) - +0x1EE4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1F10 | offset to field `type` (table) - +0x1EE8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1EEC | offset to field `attributes` (vector) + +0x1ED8 | E2 F2 FF FF | SOffset32 | 0xFFFFF2E2 (-3358) Loc: 0x2BF6 | offset to vtable + +0x1EDC | 00 00 00 | uint8_t[3] | ... | padding + +0x1EDF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1EE0 | 21 00 | uint16_t | 0x0021 (33) | table field `id` (UShort) + +0x1EE2 | 46 00 | uint16_t | 0x0046 (70) | table field `offset` (UShort) + +0x1EE4 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x1F20 | offset to field `name` (string) + +0x1EE8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1F14 | offset to field `type` (table) + +0x1EEC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1EF0 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1EEC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1EF0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1EF4 | offset to table[0] + +0x1EF0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1EF4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1EF8 | offset to table[0] table (reflection.KeyValue): - +0x1EF4 | 2C E6 FF FF | SOffset32 | 0xFFFFE62C (-6612) Loc: 0x38C8 | offset to vtable - +0x1EF8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1F08 | offset to field `key` (string) - +0x1EFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1F00 | offset to field `value` (string) + +0x1EF8 | 10 E6 FF FF | SOffset32 | 0xFFFFE610 (-6640) Loc: 0x38E8 | offset to vtable + +0x1EFC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1F0C | offset to field `key` (string) + +0x1F00 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1F04 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1F00 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1F04 | 33 33 | char[2] | 33 | string literal - +0x1F06 | 00 | char | 0x00 (0) | string terminator + +0x1F04 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1F08 | 33 33 | char[2] | 33 | string literal + +0x1F0A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1F08 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1F0C | 69 64 | char[2] | id | string literal - +0x1F0E | 00 | char | 0x00 (0) | string terminator + +0x1F0C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1F10 | 69 64 | char[2] | id | string literal + +0x1F12 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1F10 | D0 F2 FF FF | SOffset32 | 0xFFFFF2D0 (-3376) Loc: 0x2C40 | offset to vtable - +0x1F14 | 00 00 | uint8_t[2] | .. | padding - +0x1F16 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1F17 | 0C | uint8_t | 0x0C (12) | table field `element` (Byte) - +0x1F18 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x1F14 | C4 F2 FF FF | SOffset32 | 0xFFFFF2C4 (-3388) Loc: 0x2C50 | offset to vtable + +0x1F18 | 00 00 | uint8_t[2] | .. | padding + +0x1F1A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1F1B | 0C | uint8_t | 0x0C (12) | table field `element` (Byte) + +0x1F1C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1F1C | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x1F20 | 76 65 63 74 6F 72 5F 6F | char[17] | vector_o | string literal - +0x1F28 | 66 5F 64 6F 75 62 6C 65 | | f_double - +0x1F30 | 73 | | s - +0x1F31 | 00 | char | 0x00 (0) | string terminator + +0x1F20 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x1F24 | 76 65 63 74 6F 72 5F 6F | char[17] | vector_o | string literal + +0x1F2C | 66 5F 64 6F 75 62 6C 65 | | f_double + +0x1F34 | 73 | | s + +0x1F35 | 00 | char | 0x00 (0) | string terminator padding: - +0x1F32 | 00 00 | uint8_t[2] | .. | padding + +0x1F36 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1F34 | 4C F3 FF FF | SOffset32 | 0xFFFFF34C (-3252) Loc: 0x2BE8 | offset to vtable - +0x1F38 | 00 00 00 | uint8_t[3] | ... | padding - +0x1F3B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1F3C | 20 00 | uint16_t | 0x0020 (32) | table field `id` (UShort) - +0x1F3E | 44 00 | uint16_t | 0x0044 (68) | table field `offset` (UShort) - +0x1F40 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x1F7C | offset to field `name` (string) - +0x1F44 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1F70 | offset to field `type` (table) - +0x1F48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1F4C | offset to field `attributes` (vector) + +0x1F38 | 42 F3 FF FF | SOffset32 | 0xFFFFF342 (-3262) Loc: 0x2BF6 | offset to vtable + +0x1F3C | 00 00 00 | uint8_t[3] | ... | padding + +0x1F3F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1F40 | 20 00 | uint16_t | 0x0020 (32) | table field `id` (UShort) + +0x1F42 | 44 00 | uint16_t | 0x0044 (68) | table field `offset` (UShort) + +0x1F44 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x1F80 | offset to field `name` (string) + +0x1F48 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1F74 | offset to field `type` (table) + +0x1F4C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1F50 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1F4C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1F50 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1F54 | offset to table[0] + +0x1F50 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1F54 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1F58 | offset to table[0] table (reflection.KeyValue): - +0x1F54 | 8C E6 FF FF | SOffset32 | 0xFFFFE68C (-6516) Loc: 0x38C8 | offset to vtable - +0x1F58 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1F68 | offset to field `key` (string) - +0x1F5C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1F60 | offset to field `value` (string) + +0x1F58 | 70 E6 FF FF | SOffset32 | 0xFFFFE670 (-6544) Loc: 0x38E8 | offset to vtable + +0x1F5C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1F6C | offset to field `key` (string) + +0x1F60 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1F64 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1F60 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1F64 | 33 32 | char[2] | 32 | string literal - +0x1F66 | 00 | char | 0x00 (0) | string terminator + +0x1F64 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1F68 | 33 32 | char[2] | 32 | string literal + +0x1F6A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1F68 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1F6C | 69 64 | char[2] | id | string literal - +0x1F6E | 00 | char | 0x00 (0) | string terminator + +0x1F6C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1F70 | 69 64 | char[2] | id | string literal + +0x1F72 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1F70 | 30 F3 FF FF | SOffset32 | 0xFFFFF330 (-3280) Loc: 0x2C40 | offset to vtable - +0x1F74 | 00 00 | uint8_t[2] | .. | padding - +0x1F76 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1F77 | 09 | uint8_t | 0x09 (9) | table field `element` (Byte) - +0x1F78 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x1F74 | 24 F3 FF FF | SOffset32 | 0xFFFFF324 (-3292) Loc: 0x2C50 | offset to vtable + +0x1F78 | 00 00 | uint8_t[2] | .. | padding + +0x1F7A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1F7B | 09 | uint8_t | 0x09 (9) | table field `element` (Byte) + +0x1F7C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1F7C | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string - +0x1F80 | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal - +0x1F88 | 66 5F 6C 6F 6E 67 73 | | f_longs - +0x1F8F | 00 | char | 0x00 (0) | string terminator + +0x1F80 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string + +0x1F84 | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal + +0x1F8C | 66 5F 6C 6F 6E 67 73 | | f_longs + +0x1F93 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1F90 | A8 F3 FF FF | SOffset32 | 0xFFFFF3A8 (-3160) Loc: 0x2BE8 | offset to vtable - +0x1F94 | 00 00 00 | uint8_t[3] | ... | padding - +0x1F97 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1F98 | 1F 00 | uint16_t | 0x001F (31) | table field `id` (UShort) - +0x1F9A | 42 00 | uint16_t | 0x0042 (66) | table field `offset` (UShort) - +0x1F9C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x1FDC | offset to field `name` (string) - +0x1FA0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1FCC | offset to field `type` (table) - +0x1FA4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1FA8 | offset to field `attributes` (vector) + +0x1F94 | 9E F3 FF FF | SOffset32 | 0xFFFFF39E (-3170) Loc: 0x2BF6 | offset to vtable + +0x1F98 | 00 00 00 | uint8_t[3] | ... | padding + +0x1F9B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1F9C | 1F 00 | uint16_t | 0x001F (31) | table field `id` (UShort) + +0x1F9E | 42 00 | uint16_t | 0x0042 (66) | table field `offset` (UShort) + +0x1FA0 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x1FE0 | offset to field `name` (string) + +0x1FA4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1FD0 | offset to field `type` (table) + +0x1FA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1FAC | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1FA8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1FAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1FB0 | offset to table[0] + +0x1FAC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1FB0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1FB4 | offset to table[0] table (reflection.KeyValue): - +0x1FB0 | E8 E6 FF FF | SOffset32 | 0xFFFFE6E8 (-6424) Loc: 0x38C8 | offset to vtable - +0x1FB4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1FC4 | offset to field `key` (string) - +0x1FB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1FBC | offset to field `value` (string) + +0x1FB4 | CC E6 FF FF | SOffset32 | 0xFFFFE6CC (-6452) Loc: 0x38E8 | offset to vtable + +0x1FB8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1FC8 | offset to field `key` (string) + +0x1FBC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1FC0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1FBC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1FC0 | 33 31 | char[2] | 31 | string literal - +0x1FC2 | 00 | char | 0x00 (0) | string terminator + +0x1FC0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1FC4 | 33 31 | char[2] | 31 | string literal + +0x1FC6 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1FC4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1FC8 | 69 64 | char[2] | id | string literal - +0x1FCA | 00 | char | 0x00 (0) | string terminator + +0x1FC8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1FCC | 69 64 | char[2] | id | string literal + +0x1FCE | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1FCC | 58 F5 FF FF | SOffset32 | 0xFFFFF558 (-2728) Loc: 0x2A74 | offset to vtable - +0x1FD0 | 00 00 | uint8_t[2] | .. | padding - +0x1FD2 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1FD3 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x1FD4 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x1FD8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x1FD0 | 34 F5 FF FF | SOffset32 | 0xFFFFF534 (-2764) Loc: 0x2A9C | offset to vtable + +0x1FD4 | 00 00 | uint8_t[2] | .. | padding + +0x1FD6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1FD7 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x1FD8 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x1FDC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1FDC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x1FE0 | 74 65 73 74 35 | char[5] | test5 | string literal - +0x1FE5 | 00 | char | 0x00 (0) | string terminator + +0x1FE0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x1FE4 | 74 65 73 74 35 | char[5] | test5 | string literal + +0x1FE9 | 00 | char | 0x00 (0) | string terminator padding: - +0x1FE6 | 00 00 | uint8_t[2] | .. | padding + +0x1FEA | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1FE8 | 00 F4 FF FF | SOffset32 | 0xFFFFF400 (-3072) Loc: 0x2BE8 | offset to vtable - +0x1FEC | 00 00 00 | uint8_t[3] | ... | padding - +0x1FEF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1FF0 | 1E 00 | uint16_t | 0x001E (30) | table field `id` (UShort) - +0x1FF2 | 40 00 | uint16_t | 0x0040 (64) | table field `offset` (UShort) - +0x1FF4 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: 0x2058 | offset to field `name` (string) - +0x1FF8 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: 0x204C | offset to field `type` (table) - +0x1FFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2000 | offset to field `attributes` (vector) + +0x1FEC | F6 F3 FF FF | SOffset32 | 0xFFFFF3F6 (-3082) Loc: 0x2BF6 | offset to vtable + +0x1FF0 | 00 00 00 | uint8_t[3] | ... | padding + +0x1FF3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1FF4 | 1E 00 | uint16_t | 0x001E (30) | table field `id` (UShort) + +0x1FF6 | 40 00 | uint16_t | 0x0040 (64) | table field `offset` (UShort) + +0x1FF8 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: 0x205C | offset to field `name` (string) + +0x1FFC | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: 0x2050 | offset to field `type` (table) + +0x2000 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2004 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2000 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2004 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2028 | offset to table[0] - +0x2008 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x200C | offset to table[1] + +0x2004 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2008 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x202C | offset to table[0] + +0x200C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2010 | offset to table[1] table (reflection.KeyValue): - +0x200C | 44 E7 FF FF | SOffset32 | 0xFFFFE744 (-6332) Loc: 0x38C8 | offset to vtable - +0x2010 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2020 | offset to field `key` (string) - +0x2014 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2018 | offset to field `value` (string) + +0x2010 | 28 E7 FF FF | SOffset32 | 0xFFFFE728 (-6360) Loc: 0x38E8 | offset to vtable + +0x2014 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2024 | offset to field `key` (string) + +0x2018 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x201C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2018 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x201C | 33 30 | char[2] | 30 | string literal - +0x201E | 00 | char | 0x00 (0) | string terminator + +0x201C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2020 | 33 30 | char[2] | 30 | string literal + +0x2022 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2020 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2024 | 69 64 | char[2] | id | string literal - +0x2026 | 00 | char | 0x00 (0) | string terminator + +0x2024 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2028 | 69 64 | char[2] | id | string literal + +0x202A | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2028 | 60 E7 FF FF | SOffset32 | 0xFFFFE760 (-6304) Loc: 0x38C8 | offset to vtable - +0x202C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x203C | offset to field `key` (string) - +0x2030 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2034 | offset to field `value` (string) + +0x202C | 44 E7 FF FF | SOffset32 | 0xFFFFE744 (-6332) Loc: 0x38E8 | offset to vtable + +0x2030 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2040 | offset to field `key` (string) + +0x2034 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2038 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2034 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2038 | 30 | char[1] | 0 | string literal - +0x2039 | 00 | char | 0x00 (0) | string terminator + +0x2038 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x203C | 30 | char[1] | 0 | string literal + +0x203D | 00 | char | 0x00 (0) | string terminator padding: - +0x203A | 00 00 | uint8_t[2] | .. | padding + +0x203E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x203C | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string - +0x2040 | 66 6C 65 78 62 75 66 66 | char[10] | flexbuff | string literal - +0x2048 | 65 72 | | er - +0x204A | 00 | char | 0x00 (0) | string terminator + +0x2040 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string + +0x2044 | 66 6C 65 78 62 75 66 66 | char[10] | flexbuff | string literal + +0x204C | 65 72 | | er + +0x204E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x204C | 0C F4 FF FF | SOffset32 | 0xFFFFF40C (-3060) Loc: 0x2C40 | offset to vtable - +0x2050 | 00 00 | uint8_t[2] | .. | padding - +0x2052 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2053 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) - +0x2054 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2050 | 00 F4 FF FF | SOffset32 | 0xFFFFF400 (-3072) Loc: 0x2C50 | offset to vtable + +0x2054 | 00 00 | uint8_t[2] | .. | padding + +0x2056 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2057 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) + +0x2058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2058 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x205C | 66 6C 65 78 | char[4] | flex | string literal - +0x2060 | 00 | char | 0x00 (0) | string terminator + +0x205C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2060 | 66 6C 65 78 | char[4] | flex | string literal + +0x2064 | 00 | char | 0x00 (0) | string terminator padding: - +0x2061 | 00 00 00 | uint8_t[3] | ... | padding + +0x2065 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2064 | 7C F4 FF FF | SOffset32 | 0xFFFFF47C (-2948) Loc: 0x2BE8 | offset to vtable - +0x2068 | 00 00 00 | uint8_t[3] | ... | padding - +0x206B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x206C | 1D 00 | uint16_t | 0x001D (29) | table field `id` (UShort) - +0x206E | 3E 00 | uint16_t | 0x003E (62) | table field `offset` (UShort) - +0x2070 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x20B0 | offset to field `name` (string) - +0x2074 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x20A0 | offset to field `type` (table) - +0x2078 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x207C | offset to field `attributes` (vector) + +0x2068 | 72 F4 FF FF | SOffset32 | 0xFFFFF472 (-2958) Loc: 0x2BF6 | offset to vtable + +0x206C | 00 00 00 | uint8_t[3] | ... | padding + +0x206F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2070 | 1D 00 | uint16_t | 0x001D (29) | table field `id` (UShort) + +0x2072 | 3E 00 | uint16_t | 0x003E (62) | table field `offset` (UShort) + +0x2074 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x20B4 | offset to field `name` (string) + +0x2078 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x20A4 | offset to field `type` (table) + +0x207C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2080 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x207C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2080 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2084 | offset to table[0] + +0x2080 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2084 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2088 | offset to table[0] table (reflection.KeyValue): - +0x2084 | BC E7 FF FF | SOffset32 | 0xFFFFE7BC (-6212) Loc: 0x38C8 | offset to vtable - +0x2088 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2098 | offset to field `key` (string) - +0x208C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2090 | offset to field `value` (string) + +0x2088 | A0 E7 FF FF | SOffset32 | 0xFFFFE7A0 (-6240) Loc: 0x38E8 | offset to vtable + +0x208C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x209C | offset to field `key` (string) + +0x2090 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2094 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2090 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2094 | 32 39 | char[2] | 29 | string literal - +0x2096 | 00 | char | 0x00 (0) | string terminator + +0x2094 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2098 | 32 39 | char[2] | 29 | string literal + +0x209A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2098 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x209C | 69 64 | char[2] | id | string literal - +0x209E | 00 | char | 0x00 (0) | string terminator + +0x209C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x20A0 | 69 64 | char[2] | id | string literal + +0x20A2 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x20A0 | 2C F6 FF FF | SOffset32 | 0xFFFFF62C (-2516) Loc: 0x2A74 | offset to vtable - +0x20A4 | 00 00 | uint8_t[2] | .. | padding - +0x20A6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x20A7 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x20A8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x20AC | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x20A4 | 08 F6 FF FF | SOffset32 | 0xFFFFF608 (-2552) Loc: 0x2A9C | offset to vtable + +0x20A8 | 00 00 | uint8_t[2] | .. | padding + +0x20AA | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x20AB | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x20AC | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x20B0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x20B0 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string - +0x20B4 | 74 65 73 74 61 72 72 61 | char[23] | testarra | string literal - +0x20BC | 79 6F 66 73 6F 72 74 65 | | yofsorte - +0x20C4 | 64 73 74 72 75 63 74 | | dstruct - +0x20CB | 00 | char | 0x00 (0) | string terminator + +0x20B4 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string + +0x20B8 | 74 65 73 74 61 72 72 61 | char[23] | testarra | string literal + +0x20C0 | 79 6F 66 73 6F 72 74 65 | | yofsorte + +0x20C8 | 64 73 74 72 75 63 74 | | dstruct + +0x20CF | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x20CC | E4 F4 FF FF | SOffset32 | 0xFFFFF4E4 (-2844) Loc: 0x2BE8 | offset to vtable - +0x20D0 | 00 00 00 | uint8_t[3] | ... | padding - +0x20D3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x20D4 | 1C 00 | uint16_t | 0x001C (28) | table field `id` (UShort) - +0x20D6 | 3C 00 | uint16_t | 0x003C (60) | table field `offset` (UShort) - +0x20D8 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x2114 | offset to field `name` (string) - +0x20DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2108 | offset to field `type` (table) - +0x20E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x20E4 | offset to field `attributes` (vector) + +0x20D0 | DA F4 FF FF | SOffset32 | 0xFFFFF4DA (-2854) Loc: 0x2BF6 | offset to vtable + +0x20D4 | 00 00 00 | uint8_t[3] | ... | padding + +0x20D7 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x20D8 | 1C 00 | uint16_t | 0x001C (28) | table field `id` (UShort) + +0x20DA | 3C 00 | uint16_t | 0x003C (60) | table field `offset` (UShort) + +0x20DC | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x2118 | offset to field `name` (string) + +0x20E0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x210C | offset to field `type` (table) + +0x20E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x20E8 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x20E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x20E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x20EC | offset to table[0] + +0x20E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x20EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x20F0 | offset to table[0] table (reflection.KeyValue): - +0x20EC | 24 E8 FF FF | SOffset32 | 0xFFFFE824 (-6108) Loc: 0x38C8 | offset to vtable - +0x20F0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2100 | offset to field `key` (string) - +0x20F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x20F8 | offset to field `value` (string) + +0x20F0 | 08 E8 FF FF | SOffset32 | 0xFFFFE808 (-6136) Loc: 0x38E8 | offset to vtable + +0x20F4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2104 | offset to field `key` (string) + +0x20F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x20FC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x20F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x20FC | 32 38 | char[2] | 28 | string literal - +0x20FE | 00 | char | 0x00 (0) | string terminator + +0x20FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2100 | 32 38 | char[2] | 28 | string literal + +0x2102 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2100 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2104 | 69 64 | char[2] | id | string literal - +0x2106 | 00 | char | 0x00 (0) | string terminator + +0x2104 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2108 | 69 64 | char[2] | id | string literal + +0x210A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2108 | C8 F4 FF FF | SOffset32 | 0xFFFFF4C8 (-2872) Loc: 0x2C40 | offset to vtable - +0x210C | 00 00 | uint8_t[2] | .. | padding - +0x210E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x210F | 0D | uint8_t | 0x0D (13) | table field `element` (Byte) - +0x2110 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x210C | BC F4 FF FF | SOffset32 | 0xFFFFF4BC (-2884) Loc: 0x2C50 | offset to vtable + +0x2110 | 00 00 | uint8_t[2] | .. | padding + +0x2112 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2113 | 0D | uint8_t | 0x0D (13) | table field `element` (Byte) + +0x2114 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2114 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string - +0x2118 | 74 65 73 74 61 72 72 61 | char[18] | testarra | string literal - +0x2120 | 79 6F 66 73 74 72 69 6E | | yofstrin - +0x2128 | 67 32 | | g2 - +0x212A | 00 | char | 0x00 (0) | string terminator + +0x2118 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string + +0x211C | 74 65 73 74 61 72 72 61 | char[18] | testarra | string literal + +0x2124 | 79 6F 66 73 74 72 69 6E | | yofstrin + +0x212C | 67 32 | | g2 + +0x212E | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x212C | 34 F6 FF FF | SOffset32 | 0xFFFFF634 (-2508) Loc: 0x2AF8 | offset to vtable - +0x2130 | 1B 00 | uint16_t | 0x001B (27) | table field `id` (UShort) - +0x2132 | 3A 00 | uint16_t | 0x003A (58) | table field `offset` (UShort) - +0x2134 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x2170 | offset to field `name` (string) - +0x2138 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2164 | offset to field `type` (table) - +0x213C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2140 | offset to field `attributes` (vector) + +0x2130 | 12 F6 FF FF | SOffset32 | 0xFFFFF612 (-2542) Loc: 0x2B1E | offset to vtable + +0x2134 | 1B 00 | uint16_t | 0x001B (27) | table field `id` (UShort) + +0x2136 | 3A 00 | uint16_t | 0x003A (58) | table field `offset` (UShort) + +0x2138 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x2174 | offset to field `name` (string) + +0x213C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2168 | offset to field `type` (table) + +0x2140 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2144 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2140 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2144 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2148 | offset to table[0] + +0x2144 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2148 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x214C | offset to table[0] table (reflection.KeyValue): - +0x2148 | 80 E8 FF FF | SOffset32 | 0xFFFFE880 (-6016) Loc: 0x38C8 | offset to vtable - +0x214C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x215C | offset to field `key` (string) - +0x2150 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2154 | offset to field `value` (string) + +0x214C | 64 E8 FF FF | SOffset32 | 0xFFFFE864 (-6044) Loc: 0x38E8 | offset to vtable + +0x2150 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2160 | offset to field `key` (string) + +0x2154 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2158 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2154 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2158 | 32 37 | char[2] | 27 | string literal - +0x215A | 00 | char | 0x00 (0) | string terminator + +0x2158 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x215C | 32 37 | char[2] | 27 | string literal + +0x215E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x215C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2160 | 69 64 | char[2] | id | string literal - +0x2162 | 00 | char | 0x00 (0) | string terminator + +0x2160 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2164 | 69 64 | char[2] | id | string literal + +0x2166 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2164 | 88 E8 FF FF | SOffset32 | 0xFFFFE888 (-6008) Loc: 0x38DC | offset to vtable - +0x2168 | 00 00 00 | uint8_t[3] | ... | padding - +0x216B | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x216C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2168 | 6C E8 FF FF | SOffset32 | 0xFFFFE86C (-6036) Loc: 0x38FC | offset to vtable + +0x216C | 00 00 00 | uint8_t[3] | ... | padding + +0x216F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x2170 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2170 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x2174 | 74 65 73 74 66 33 | char[6] | testf3 | string literal - +0x217A | 00 | char | 0x00 (0) | string terminator + +0x2174 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x2178 | 74 65 73 74 66 33 | char[6] | testf3 | string literal + +0x217E | 00 | char | 0x00 (0) | string terminator + +padding: + +0x217F | 00 00 00 | uint8_t[3] | ... | padding + +vtable (reflection.Field): + +0x2182 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x2184 | 20 00 | uint16_t | 0x0020 (32) | size of referring table + +0x2186 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x2188 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x218A | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x218C | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x218E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2190 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_real` (id: 5) + +0x2192 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2194 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated_readonly` (id: 7) (Bool) + +0x2196 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 8) (Bool) + +0x2198 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 9) (Bool) + +0x219A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 10) table (reflection.Field): - +0x217C | A8 FF FF FF | SOffset32 | 0xFFFFFFA8 (-88) Loc: 0x21D4 | offset to vtable - +0x2180 | 1A 00 | uint16_t | 0x001A (26) | table field `id` (UShort) - +0x2182 | 38 00 | uint16_t | 0x0038 (56) | table field `offset` (UShort) - +0x2184 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x21C8 | offset to field `name` (string) - +0x2188 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x21BC | offset to field `type` (table) - +0x218C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x2198 | offset to field `attributes` (vector) - +0x2190 | 00 00 00 00 00 00 08 40 | double | 0x4008000000000000 (3) | table field `default_real` (Double) + +0x219C | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: 0x2182 | offset to vtable + +0x21A0 | 1A 00 | uint16_t | 0x001A (26) | table field `id` (UShort) + +0x21A2 | 38 00 | uint16_t | 0x0038 (56) | table field `offset` (UShort) + +0x21A4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x21EC | offset to field `name` (string) + +0x21A8 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x21E0 | offset to field `type` (table) + +0x21AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x21BC | offset to field `attributes` (vector) + +0x21B0 | 00 00 00 00 00 00 08 40 | double | 0x4008000000000000 (3) | table field `default_real` (Double) + +0x21B8 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.attributes): - +0x2198 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x219C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x21A0 | offset to table[0] + +0x21BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x21C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x21C4 | offset to table[0] table (reflection.KeyValue): - +0x21A0 | D8 E8 FF FF | SOffset32 | 0xFFFFE8D8 (-5928) Loc: 0x38C8 | offset to vtable - +0x21A4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x21B4 | offset to field `key` (string) - +0x21A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x21AC | offset to field `value` (string) + +0x21C4 | DC E8 FF FF | SOffset32 | 0xFFFFE8DC (-5924) Loc: 0x38E8 | offset to vtable + +0x21C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x21D8 | offset to field `key` (string) + +0x21CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x21D0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x21AC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x21B0 | 32 36 | char[2] | 26 | string literal - +0x21B2 | 00 | char | 0x00 (0) | string terminator + +0x21D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x21D4 | 32 36 | char[2] | 26 | string literal + +0x21D6 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x21B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x21B8 | 69 64 | char[2] | id | string literal - +0x21BA | 00 | char | 0x00 (0) | string terminator + +0x21D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x21DC | 69 64 | char[2] | id | string literal + +0x21DE | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x21BC | E0 E8 FF FF | SOffset32 | 0xFFFFE8E0 (-5920) Loc: 0x38DC | offset to vtable - +0x21C0 | 00 00 00 | uint8_t[3] | ... | padding - +0x21C3 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x21C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x21E0 | E4 E8 FF FF | SOffset32 | 0xFFFFE8E4 (-5916) Loc: 0x38FC | offset to vtable + +0x21E4 | 00 00 00 | uint8_t[3] | ... | padding + +0x21E7 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x21E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x21C8 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x21CC | 74 65 73 74 66 32 | char[6] | testf2 | string literal - +0x21D2 | 00 | char | 0x00 (0) | string terminator + +0x21EC | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x21F0 | 74 65 73 74 66 32 | char[6] | testf2 | string literal + +0x21F6 | 00 | char | 0x00 (0) | string terminator + +padding: + +0x21F7 | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x21D4 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x21D6 | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x21D8 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x21DA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x21DC | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x21DE | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x21E0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x21E2 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_real` (id: 5) - +0x21E4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x21E6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x21E8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x21EA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x21FA | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x21FC | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x21FE | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x2200 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x2202 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x2204 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x2206 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2208 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_real` (id: 5) + +0x220A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x220C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated_readonly` (id: 7) (Bool) + +0x220E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 8) (Bool) + +0x2210 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 9) (Bool) + +0x2212 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 10) table (reflection.Field): - +0x21EC | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x21D4 | offset to vtable - +0x21F0 | 19 00 | uint16_t | 0x0019 (25) | table field `id` (UShort) - +0x21F2 | 36 00 | uint16_t | 0x0036 (54) | table field `offset` (UShort) - +0x21F4 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x2238 | offset to field `name` (string) - +0x21F8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x222C | offset to field `type` (table) - +0x21FC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x2208 | offset to field `attributes` (vector) - +0x2200 | 6E 86 1B F0 F9 21 09 40 | double | 0x400921F9F01B866E (3.14159) | table field `default_real` (Double) + +0x2214 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: 0x21FA | offset to vtable + +0x2218 | 19 00 | uint16_t | 0x0019 (25) | table field `id` (UShort) + +0x221A | 36 00 | uint16_t | 0x0036 (54) | table field `offset` (UShort) + +0x221C | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x2260 | offset to field `name` (string) + +0x2220 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x2254 | offset to field `type` (table) + +0x2224 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x2230 | offset to field `attributes` (vector) + +0x2228 | 6E 86 1B F0 F9 21 09 40 | double | 0x400921F9F01B866E (3.14159) | table field `default_real` (Double) vector (reflection.Field.attributes): - +0x2208 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x220C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2210 | offset to table[0] + +0x2230 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2234 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2238 | offset to table[0] table (reflection.KeyValue): - +0x2210 | 48 E9 FF FF | SOffset32 | 0xFFFFE948 (-5816) Loc: 0x38C8 | offset to vtable - +0x2214 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2224 | offset to field `key` (string) - +0x2218 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x221C | offset to field `value` (string) + +0x2238 | 50 E9 FF FF | SOffset32 | 0xFFFFE950 (-5808) Loc: 0x38E8 | offset to vtable + +0x223C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x224C | offset to field `key` (string) + +0x2240 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2244 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x221C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2220 | 32 35 | char[2] | 25 | string literal - +0x2222 | 00 | char | 0x00 (0) | string terminator + +0x2244 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2248 | 32 35 | char[2] | 25 | string literal + +0x224A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2224 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2228 | 69 64 | char[2] | id | string literal - +0x222A | 00 | char | 0x00 (0) | string terminator + +0x224C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2250 | 69 64 | char[2] | id | string literal + +0x2252 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x222C | 50 E9 FF FF | SOffset32 | 0xFFFFE950 (-5808) Loc: 0x38DC | offset to vtable - +0x2230 | 00 00 00 | uint8_t[3] | ... | padding - +0x2233 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x2234 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2254 | 58 E9 FF FF | SOffset32 | 0xFFFFE958 (-5800) Loc: 0x38FC | offset to vtable + +0x2258 | 00 00 00 | uint8_t[3] | ... | padding + +0x225B | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x225C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2238 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x223C | 74 65 73 74 66 | char[5] | testf | string literal - +0x2241 | 00 | char | 0x00 (0) | string terminator + +0x2260 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x2264 | 74 65 73 74 66 | char[5] | testf | string literal + +0x2269 | 00 | char | 0x00 (0) | string terminator padding: - +0x2242 | 00 00 | uint8_t[2] | .. | padding + +0x226A | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2244 | 5C F6 FF FF | SOffset32 | 0xFFFFF65C (-2468) Loc: 0x2BE8 | offset to vtable - +0x2248 | 00 00 00 | uint8_t[3] | ... | padding - +0x224B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x224C | 18 00 | uint16_t | 0x0018 (24) | table field `id` (UShort) - +0x224E | 34 00 | uint16_t | 0x0034 (52) | table field `offset` (UShort) - +0x2250 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x228C | offset to field `name` (string) - +0x2254 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2280 | offset to field `type` (table) - +0x2258 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x225C | offset to field `attributes` (vector) + +0x226C | 76 F6 FF FF | SOffset32 | 0xFFFFF676 (-2442) Loc: 0x2BF6 | offset to vtable + +0x2270 | 00 00 00 | uint8_t[3] | ... | padding + +0x2273 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2274 | 18 00 | uint16_t | 0x0018 (24) | table field `id` (UShort) + +0x2276 | 34 00 | uint16_t | 0x0034 (52) | table field `offset` (UShort) + +0x2278 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x22B4 | offset to field `name` (string) + +0x227C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x22A8 | offset to field `type` (table) + +0x2280 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2284 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x225C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2260 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2264 | offset to table[0] + +0x2284 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2288 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x228C | offset to table[0] table (reflection.KeyValue): - +0x2264 | 9C E9 FF FF | SOffset32 | 0xFFFFE99C (-5732) Loc: 0x38C8 | offset to vtable - +0x2268 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2278 | offset to field `key` (string) - +0x226C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2270 | offset to field `value` (string) + +0x228C | A4 E9 FF FF | SOffset32 | 0xFFFFE9A4 (-5724) Loc: 0x38E8 | offset to vtable + +0x2290 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x22A0 | offset to field `key` (string) + +0x2294 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2298 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2270 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2274 | 32 34 | char[2] | 24 | string literal - +0x2276 | 00 | char | 0x00 (0) | string terminator + +0x2298 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x229C | 32 34 | char[2] | 24 | string literal + +0x229E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2278 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x227C | 69 64 | char[2] | id | string literal - +0x227E | 00 | char | 0x00 (0) | string terminator + +0x22A0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x22A4 | 69 64 | char[2] | id | string literal + +0x22A6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2280 | 40 F6 FF FF | SOffset32 | 0xFFFFF640 (-2496) Loc: 0x2C40 | offset to vtable - +0x2284 | 00 00 | uint8_t[2] | .. | padding - +0x2286 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2287 | 02 | uint8_t | 0x02 (2) | table field `element` (Byte) - +0x2288 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x22A8 | 58 F6 FF FF | SOffset32 | 0xFFFFF658 (-2472) Loc: 0x2C50 | offset to vtable + +0x22AC | 00 00 | uint8_t[2] | .. | padding + +0x22AE | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x22AF | 02 | uint8_t | 0x02 (2) | table field `element` (Byte) + +0x22B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x228C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x2290 | 74 65 73 74 61 72 72 61 | char[16] | testarra | string literal - +0x2298 | 79 6F 66 62 6F 6F 6C 73 | | yofbools - +0x22A0 | 00 | char | 0x00 (0) | string terminator + +0x22B4 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x22B8 | 74 65 73 74 61 72 72 61 | char[16] | testarra | string literal + +0x22C0 | 79 6F 66 62 6F 6F 6C 73 | | yofbools + +0x22C8 | 00 | char | 0x00 (0) | string terminator padding: - +0x22A1 | 00 00 00 | uint8_t[3] | ... | padding + +0x22C9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x22A4 | AC F7 FF FF | SOffset32 | 0xFFFFF7AC (-2132) Loc: 0x2AF8 | offset to vtable - +0x22A8 | 17 00 | uint16_t | 0x0017 (23) | table field `id` (UShort) - +0x22AA | 32 00 | uint16_t | 0x0032 (50) | table field `offset` (UShort) - +0x22AC | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: 0x2318 | offset to field `name` (string) - +0x22B0 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: 0x2308 | offset to field `type` (table) - +0x22B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x22B8 | offset to field `attributes` (vector) + +0x22CC | AE F7 FF FF | SOffset32 | 0xFFFFF7AE (-2130) Loc: 0x2B1E | offset to vtable + +0x22D0 | 17 00 | uint16_t | 0x0017 (23) | table field `id` (UShort) + +0x22D2 | 32 00 | uint16_t | 0x0032 (50) | table field `offset` (UShort) + +0x22D4 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: 0x2340 | offset to field `name` (string) + +0x22D8 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: 0x2330 | offset to field `type` (table) + +0x22DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x22E0 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x22B8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x22BC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x22E0 | offset to table[0] - +0x22C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x22C4 | offset to table[1] + +0x22E0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x22E4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2308 | offset to table[0] + +0x22E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x22EC | offset to table[1] table (reflection.KeyValue): - +0x22C4 | FC E9 FF FF | SOffset32 | 0xFFFFE9FC (-5636) Loc: 0x38C8 | offset to vtable - +0x22C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x22D8 | offset to field `key` (string) - +0x22CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x22D0 | offset to field `value` (string) + +0x22EC | 04 EA FF FF | SOffset32 | 0xFFFFEA04 (-5628) Loc: 0x38E8 | offset to vtable + +0x22F0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2300 | offset to field `key` (string) + +0x22F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x22F8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x22D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x22D4 | 32 33 | char[2] | 23 | string literal - +0x22D6 | 00 | char | 0x00 (0) | string terminator + +0x22F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x22FC | 32 33 | char[2] | 23 | string literal + +0x22FE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x22D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x22DC | 69 64 | char[2] | id | string literal - +0x22DE | 00 | char | 0x00 (0) | string terminator + +0x2300 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2304 | 69 64 | char[2] | id | string literal + +0x2306 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x22E0 | 18 EA FF FF | SOffset32 | 0xFFFFEA18 (-5608) Loc: 0x38C8 | offset to vtable - +0x22E4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x22FC | offset to field `key` (string) - +0x22E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x22EC | offset to field `value` (string) + +0x2308 | 20 EA FF FF | SOffset32 | 0xFFFFEA20 (-5600) Loc: 0x38E8 | offset to vtable + +0x230C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x2324 | offset to field `key` (string) + +0x2310 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2314 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x22EC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x22F0 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x22F8 | 00 | char | 0x00 (0) | string terminator + +0x2314 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x2318 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x2320 | 00 | char | 0x00 (0) | string terminator padding: - +0x22F9 | 00 00 00 | uint8_t[3] | ... | padding + +0x2321 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x22FC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2300 | 68 61 73 68 | char[4] | hash | string literal - +0x2304 | 00 | char | 0x00 (0) | string terminator + +0x2324 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2328 | 68 61 73 68 | char[4] | hash | string literal + +0x232C | 00 | char | 0x00 (0) | string terminator padding: - +0x2305 | 00 00 00 | uint8_t[3] | ... | padding + +0x232D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2308 | 94 EC FF FF | SOffset32 | 0xFFFFEC94 (-4972) Loc: 0x3674 | offset to vtable - +0x230C | 00 00 00 | uint8_t[3] | ... | padding - +0x230F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x2310 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x2314 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2330 | 9C EC FF FF | SOffset32 | 0xFFFFEC9C (-4964) Loc: 0x3694 | offset to vtable + +0x2334 | 00 00 00 | uint8_t[3] | ... | padding + +0x2337 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x2338 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x233C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2318 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x231C | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal - +0x2324 | 75 36 34 5F 66 6E 76 31 | | u64_fnv1 - +0x232C | 61 | | a - +0x232D | 00 | char | 0x00 (0) | string terminator + +0x2340 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x2344 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal + +0x234C | 75 36 34 5F 66 6E 76 31 | | u64_fnv1 + +0x2354 | 61 | | a + +0x2355 | 00 | char | 0x00 (0) | string terminator padding: - +0x232E | 00 00 | uint8_t[2] | .. | padding + +0x2356 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2330 | 38 F8 FF FF | SOffset32 | 0xFFFFF838 (-1992) Loc: 0x2AF8 | offset to vtable - +0x2334 | 16 00 | uint16_t | 0x0016 (22) | table field `id` (UShort) - +0x2336 | 30 00 | uint16_t | 0x0030 (48) | table field `offset` (UShort) - +0x2338 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: 0x23A4 | offset to field `name` (string) - +0x233C | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: 0x2394 | offset to field `type` (table) - +0x2340 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2344 | offset to field `attributes` (vector) + +0x2358 | 3A F8 FF FF | SOffset32 | 0xFFFFF83A (-1990) Loc: 0x2B1E | offset to vtable + +0x235C | 16 00 | uint16_t | 0x0016 (22) | table field `id` (UShort) + +0x235E | 30 00 | uint16_t | 0x0030 (48) | table field `offset` (UShort) + +0x2360 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: 0x23CC | offset to field `name` (string) + +0x2364 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: 0x23BC | offset to field `type` (table) + +0x2368 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x236C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2344 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2348 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x236C | offset to table[0] - +0x234C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2350 | offset to table[1] + +0x236C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2370 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2394 | offset to table[0] + +0x2374 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2378 | offset to table[1] table (reflection.KeyValue): - +0x2350 | 88 EA FF FF | SOffset32 | 0xFFFFEA88 (-5496) Loc: 0x38C8 | offset to vtable - +0x2354 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2364 | offset to field `key` (string) - +0x2358 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x235C | offset to field `value` (string) + +0x2378 | 90 EA FF FF | SOffset32 | 0xFFFFEA90 (-5488) Loc: 0x38E8 | offset to vtable + +0x237C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x238C | offset to field `key` (string) + +0x2380 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2384 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x235C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2360 | 32 32 | char[2] | 22 | string literal - +0x2362 | 00 | char | 0x00 (0) | string terminator + +0x2384 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2388 | 32 32 | char[2] | 22 | string literal + +0x238A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2364 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2368 | 69 64 | char[2] | id | string literal - +0x236A | 00 | char | 0x00 (0) | string terminator + +0x238C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2390 | 69 64 | char[2] | id | string literal + +0x2392 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x236C | A4 EA FF FF | SOffset32 | 0xFFFFEAA4 (-5468) Loc: 0x38C8 | offset to vtable - +0x2370 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x2388 | offset to field `key` (string) - +0x2374 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2378 | offset to field `value` (string) + +0x2394 | AC EA FF FF | SOffset32 | 0xFFFFEAAC (-5460) Loc: 0x38E8 | offset to vtable + +0x2398 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x23B0 | offset to field `key` (string) + +0x239C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x23A0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2378 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x237C | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x2384 | 00 | char | 0x00 (0) | string terminator + +0x23A0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x23A4 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x23AC | 00 | char | 0x00 (0) | string terminator padding: - +0x2385 | 00 00 00 | uint8_t[3] | ... | padding + +0x23AD | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x2388 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x238C | 68 61 73 68 | char[4] | hash | string literal - +0x2390 | 00 | char | 0x00 (0) | string terminator + +0x23B0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x23B4 | 68 61 73 68 | char[4] | hash | string literal + +0x23B8 | 00 | char | 0x00 (0) | string terminator padding: - +0x2391 | 00 00 00 | uint8_t[3] | ... | padding + +0x23B9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2394 | 20 ED FF FF | SOffset32 | 0xFFFFED20 (-4832) Loc: 0x3674 | offset to vtable - +0x2398 | 00 00 00 | uint8_t[3] | ... | padding - +0x239B | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) - +0x239C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x23A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x23BC | 28 ED FF FF | SOffset32 | 0xFFFFED28 (-4824) Loc: 0x3694 | offset to vtable + +0x23C0 | 00 00 00 | uint8_t[3] | ... | padding + +0x23C3 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) + +0x23C4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x23C8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x23A4 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x23A8 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal - +0x23B0 | 73 36 34 5F 66 6E 76 31 | | s64_fnv1 - +0x23B8 | 61 | | a - +0x23B9 | 00 | char | 0x00 (0) | string terminator + +0x23CC | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x23D0 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal + +0x23D8 | 73 36 34 5F 66 6E 76 31 | | s64_fnv1 + +0x23E0 | 61 | | a + +0x23E1 | 00 | char | 0x00 (0) | string terminator padding: - +0x23BA | 00 00 | uint8_t[2] | .. | padding + +0x23E2 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x23BC | C4 F8 FF FF | SOffset32 | 0xFFFFF8C4 (-1852) Loc: 0x2AF8 | offset to vtable - +0x23C0 | 15 00 | uint16_t | 0x0015 (21) | table field `id` (UShort) - +0x23C2 | 2E 00 | uint16_t | 0x002E (46) | table field `offset` (UShort) - +0x23C4 | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: 0x2488 | offset to field `name` (string) - +0x23C8 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: 0x247C | offset to field `type` (table) - +0x23CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x23D0 | offset to field `attributes` (vector) + +0x23E4 | C6 F8 FF FF | SOffset32 | 0xFFFFF8C6 (-1850) Loc: 0x2B1E | offset to vtable + +0x23E8 | 15 00 | uint16_t | 0x0015 (21) | table field `id` (UShort) + +0x23EA | 2E 00 | uint16_t | 0x002E (46) | table field `offset` (UShort) + +0x23EC | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: 0x24B0 | offset to field `name` (string) + +0x23F0 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: 0x24A4 | offset to field `type` (table) + +0x23F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x23F8 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x23D0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x23D4 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: 0x2450 | offset to table[0] - +0x23D8 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x2428 | offset to table[1] - +0x23DC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2400 | offset to table[2] - +0x23E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x23E4 | offset to table[3] + +0x23F8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x23FC | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: 0x2478 | offset to table[0] + +0x2400 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x2450 | offset to table[1] + +0x2404 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2428 | offset to table[2] + +0x2408 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x240C | offset to table[3] table (reflection.KeyValue): - +0x23E4 | 1C EB FF FF | SOffset32 | 0xFFFFEB1C (-5348) Loc: 0x38C8 | offset to vtable - +0x23E8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x23F8 | offset to field `key` (string) - +0x23EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x23F0 | offset to field `value` (string) + +0x240C | 24 EB FF FF | SOffset32 | 0xFFFFEB24 (-5340) Loc: 0x38E8 | offset to vtable + +0x2410 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2420 | offset to field `key` (string) + +0x2414 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2418 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x23F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x23F4 | 32 31 | char[2] | 21 | string literal - +0x23F6 | 00 | char | 0x00 (0) | string terminator + +0x2418 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x241C | 32 31 | char[2] | 21 | string literal + +0x241E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x23F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x23FC | 69 64 | char[2] | id | string literal - +0x23FE | 00 | char | 0x00 (0) | string terminator + +0x2420 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2424 | 69 64 | char[2] | id | string literal + +0x2426 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2400 | 38 EB FF FF | SOffset32 | 0xFFFFEB38 (-5320) Loc: 0x38C8 | offset to vtable - +0x2404 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x241C | offset to field `key` (string) - +0x2408 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x240C | offset to field `value` (string) + +0x2428 | 40 EB FF FF | SOffset32 | 0xFFFFEB40 (-5312) Loc: 0x38E8 | offset to vtable + +0x242C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x2444 | offset to field `key` (string) + +0x2430 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2434 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x240C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x2410 | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal - +0x2418 | 00 | char | 0x00 (0) | string terminator + +0x2434 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x2438 | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal + +0x2440 | 00 | char | 0x00 (0) | string terminator padding: - +0x2419 | 00 00 00 | uint8_t[3] | ... | padding + +0x2441 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x241C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2420 | 68 61 73 68 | char[4] | hash | string literal - +0x2424 | 00 | char | 0x00 (0) | string terminator + +0x2444 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2448 | 68 61 73 68 | char[4] | hash | string literal + +0x244C | 00 | char | 0x00 (0) | string terminator padding: - +0x2425 | 00 00 00 | uint8_t[3] | ... | padding + +0x244D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x2428 | 60 EB FF FF | SOffset32 | 0xFFFFEB60 (-5280) Loc: 0x38C8 | offset to vtable - +0x242C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x2440 | offset to field `key` (string) - +0x2430 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2434 | offset to field `value` (string) + +0x2450 | 68 EB FF FF | SOffset32 | 0xFFFFEB68 (-5272) Loc: 0x38E8 | offset to vtable + +0x2454 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x2468 | offset to field `key` (string) + +0x2458 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x245C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2434 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2438 | 53 74 61 74 | char[4] | Stat | string literal - +0x243C | 00 | char | 0x00 (0) | string terminator + +0x245C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2460 | 53 74 61 74 | char[4] | Stat | string literal + +0x2464 | 00 | char | 0x00 (0) | string terminator padding: - +0x243D | 00 00 00 | uint8_t[3] | ... | padding + +0x2465 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x2440 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x2444 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x244C | 00 | char | 0x00 (0) | string terminator + +0x2468 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x246C | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x2474 | 00 | char | 0x00 (0) | string terminator padding: - +0x244D | 00 00 00 | uint8_t[3] | ... | padding + +0x2475 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x2450 | 88 EB FF FF | SOffset32 | 0xFFFFEB88 (-5240) Loc: 0x38C8 | offset to vtable - +0x2454 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x2468 | offset to field `key` (string) - +0x2458 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x245C | offset to field `value` (string) + +0x2478 | 90 EB FF FF | SOffset32 | 0xFFFFEB90 (-5232) Loc: 0x38E8 | offset to vtable + +0x247C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x2490 | offset to field `key` (string) + +0x2480 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2484 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x245C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x2460 | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x2465 | 00 | char | 0x00 (0) | string terminator + +0x2484 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x2488 | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x248D | 00 | char | 0x00 (0) | string terminator padding: - +0x2466 | 00 00 | uint8_t[2] | .. | padding + +0x248E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2468 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x246C | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x2474 | 74 79 70 65 | | type - +0x2478 | 00 | char | 0x00 (0) | string terminator + +0x2490 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x2494 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x249C | 74 79 70 65 | | type + +0x24A0 | 00 | char | 0x00 (0) | string terminator padding: - +0x2479 | 00 00 00 | uint8_t[3] | ... | padding + +0x24A1 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x247C | A0 EB FF FF | SOffset32 | 0xFFFFEBA0 (-5216) Loc: 0x38DC | offset to vtable - +0x2480 | 00 00 00 | uint8_t[3] | ... | padding - +0x2483 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) - +0x2484 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x24A4 | A8 EB FF FF | SOffset32 | 0xFFFFEBA8 (-5208) Loc: 0x38FC | offset to vtable + +0x24A8 | 00 00 00 | uint8_t[3] | ... | padding + +0x24AB | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) + +0x24AC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2488 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x248C | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal - +0x2494 | 75 33 32 5F 66 6E 76 31 | | u32_fnv1 - +0x249C | 61 | | a - +0x249D | 00 | char | 0x00 (0) | string terminator + +0x24B0 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x24B4 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal + +0x24BC | 75 33 32 5F 66 6E 76 31 | | u32_fnv1 + +0x24C4 | 61 | | a + +0x24C5 | 00 | char | 0x00 (0) | string terminator padding: - +0x249E | 00 00 | uint8_t[2] | .. | padding + +0x24C6 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x24A0 | A8 F9 FF FF | SOffset32 | 0xFFFFF9A8 (-1624) Loc: 0x2AF8 | offset to vtable - +0x24A4 | 14 00 | uint16_t | 0x0014 (20) | table field `id` (UShort) - +0x24A6 | 2C 00 | uint16_t | 0x002C (44) | table field `offset` (UShort) - +0x24A8 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: 0x2510 | offset to field `name` (string) - +0x24AC | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: 0x2504 | offset to field `type` (table) - +0x24B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x24B4 | offset to field `attributes` (vector) + +0x24C8 | AA F9 FF FF | SOffset32 | 0xFFFFF9AA (-1622) Loc: 0x2B1E | offset to vtable + +0x24CC | 14 00 | uint16_t | 0x0014 (20) | table field `id` (UShort) + +0x24CE | 2C 00 | uint16_t | 0x002C (44) | table field `offset` (UShort) + +0x24D0 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: 0x2538 | offset to field `name` (string) + +0x24D4 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: 0x252C | offset to field `type` (table) + +0x24D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x24DC | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x24B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x24B8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x24DC | offset to table[0] - +0x24BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x24C0 | offset to table[1] + +0x24DC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x24E0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2504 | offset to table[0] + +0x24E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x24E8 | offset to table[1] table (reflection.KeyValue): - +0x24C0 | F8 EB FF FF | SOffset32 | 0xFFFFEBF8 (-5128) Loc: 0x38C8 | offset to vtable - +0x24C4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x24D4 | offset to field `key` (string) - +0x24C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x24CC | offset to field `value` (string) + +0x24E8 | 00 EC FF FF | SOffset32 | 0xFFFFEC00 (-5120) Loc: 0x38E8 | offset to vtable + +0x24EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x24FC | offset to field `key` (string) + +0x24F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x24F4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x24CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x24D0 | 32 30 | char[2] | 20 | string literal - +0x24D2 | 00 | char | 0x00 (0) | string terminator + +0x24F4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x24F8 | 32 30 | char[2] | 20 | string literal + +0x24FA | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x24D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x24D8 | 69 64 | char[2] | id | string literal - +0x24DA | 00 | char | 0x00 (0) | string terminator + +0x24FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2500 | 69 64 | char[2] | id | string literal + +0x2502 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x24DC | 14 EC FF FF | SOffset32 | 0xFFFFEC14 (-5100) Loc: 0x38C8 | offset to vtable - +0x24E0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x24F8 | offset to field `key` (string) - +0x24E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x24E8 | offset to field `value` (string) + +0x2504 | 1C EC FF FF | SOffset32 | 0xFFFFEC1C (-5092) Loc: 0x38E8 | offset to vtable + +0x2508 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x2520 | offset to field `key` (string) + +0x250C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2510 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x24E8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x24EC | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal - +0x24F4 | 00 | char | 0x00 (0) | string terminator + +0x2510 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x2514 | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal + +0x251C | 00 | char | 0x00 (0) | string terminator padding: - +0x24F5 | 00 00 00 | uint8_t[3] | ... | padding + +0x251D | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x24F8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x24FC | 68 61 73 68 | char[4] | hash | string literal - +0x2500 | 00 | char | 0x00 (0) | string terminator + +0x2520 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2524 | 68 61 73 68 | char[4] | hash | string literal + +0x2528 | 00 | char | 0x00 (0) | string terminator padding: - +0x2501 | 00 00 00 | uint8_t[3] | ... | padding + +0x2529 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2504 | 28 EC FF FF | SOffset32 | 0xFFFFEC28 (-5080) Loc: 0x38DC | offset to vtable - +0x2508 | 00 00 00 | uint8_t[3] | ... | padding - +0x250B | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) - +0x250C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x252C | 30 EC FF FF | SOffset32 | 0xFFFFEC30 (-5072) Loc: 0x38FC | offset to vtable + +0x2530 | 00 00 00 | uint8_t[3] | ... | padding + +0x2533 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) + +0x2534 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2510 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x2514 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal - +0x251C | 73 33 32 5F 66 6E 76 31 | | s32_fnv1 - +0x2524 | 61 | | a - +0x2525 | 00 | char | 0x00 (0) | string terminator + +0x2538 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x253C | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal + +0x2544 | 73 33 32 5F 66 6E 76 31 | | s32_fnv1 + +0x254C | 61 | | a + +0x254D | 00 | char | 0x00 (0) | string terminator padding: - +0x2526 | 00 00 | uint8_t[2] | .. | padding + +0x254E | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2528 | 30 FA FF FF | SOffset32 | 0xFFFFFA30 (-1488) Loc: 0x2AF8 | offset to vtable - +0x252C | 13 00 | uint16_t | 0x0013 (19) | table field `id` (UShort) - +0x252E | 2A 00 | uint16_t | 0x002A (42) | table field `offset` (UShort) - +0x2530 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: 0x2598 | offset to field `name` (string) - +0x2534 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: 0x2588 | offset to field `type` (table) - +0x2538 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x253C | offset to field `attributes` (vector) + +0x2550 | 32 FA FF FF | SOffset32 | 0xFFFFFA32 (-1486) Loc: 0x2B1E | offset to vtable + +0x2554 | 13 00 | uint16_t | 0x0013 (19) | table field `id` (UShort) + +0x2556 | 2A 00 | uint16_t | 0x002A (42) | table field `offset` (UShort) + +0x2558 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: 0x25C0 | offset to field `name` (string) + +0x255C | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: 0x25B0 | offset to field `type` (table) + +0x2560 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2564 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x253C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2540 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2564 | offset to table[0] - +0x2544 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2548 | offset to table[1] + +0x2564 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2568 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x258C | offset to table[0] + +0x256C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2570 | offset to table[1] table (reflection.KeyValue): - +0x2548 | 80 EC FF FF | SOffset32 | 0xFFFFEC80 (-4992) Loc: 0x38C8 | offset to vtable - +0x254C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x255C | offset to field `key` (string) - +0x2550 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2554 | offset to field `value` (string) + +0x2570 | 88 EC FF FF | SOffset32 | 0xFFFFEC88 (-4984) Loc: 0x38E8 | offset to vtable + +0x2574 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2584 | offset to field `key` (string) + +0x2578 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x257C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2554 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2558 | 31 39 | char[2] | 19 | string literal - +0x255A | 00 | char | 0x00 (0) | string terminator + +0x257C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2580 | 31 39 | char[2] | 19 | string literal + +0x2582 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x255C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2560 | 69 64 | char[2] | id | string literal - +0x2562 | 00 | char | 0x00 (0) | string terminator + +0x2584 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2588 | 69 64 | char[2] | id | string literal + +0x258A | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2564 | 9C EC FF FF | SOffset32 | 0xFFFFEC9C (-4964) Loc: 0x38C8 | offset to vtable - +0x2568 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x257C | offset to field `key` (string) - +0x256C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2570 | offset to field `value` (string) + +0x258C | A4 EC FF FF | SOffset32 | 0xFFFFECA4 (-4956) Loc: 0x38E8 | offset to vtable + +0x2590 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x25A4 | offset to field `key` (string) + +0x2594 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2598 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2570 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x2574 | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal - +0x257B | 00 | char | 0x00 (0) | string terminator + +0x2598 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x259C | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal + +0x25A3 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x257C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2580 | 68 61 73 68 | char[4] | hash | string literal - +0x2584 | 00 | char | 0x00 (0) | string terminator + +0x25A4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x25A8 | 68 61 73 68 | char[4] | hash | string literal + +0x25AC | 00 | char | 0x00 (0) | string terminator padding: - +0x2585 | 00 00 00 | uint8_t[3] | ... | padding + +0x25AD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2588 | 14 EF FF FF | SOffset32 | 0xFFFFEF14 (-4332) Loc: 0x3674 | offset to vtable - +0x258C | 00 00 00 | uint8_t[3] | ... | padding - +0x258F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x2590 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x2594 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x25B0 | 1C EF FF FF | SOffset32 | 0xFFFFEF1C (-4324) Loc: 0x3694 | offset to vtable + +0x25B4 | 00 00 00 | uint8_t[3] | ... | padding + +0x25B7 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x25B8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x25BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2598 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x259C | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal - +0x25A4 | 75 36 34 5F 66 6E 76 31 | | u64_fnv1 - +0x25AC | 00 | char | 0x00 (0) | string terminator + +0x25C0 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x25C4 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal + +0x25CC | 75 36 34 5F 66 6E 76 31 | | u64_fnv1 + +0x25D4 | 00 | char | 0x00 (0) | string terminator padding: - +0x25AD | 00 00 00 | uint8_t[3] | ... | padding + +0x25D5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x25B0 | B8 FA FF FF | SOffset32 | 0xFFFFFAB8 (-1352) Loc: 0x2AF8 | offset to vtable - +0x25B4 | 12 00 | uint16_t | 0x0012 (18) | table field `id` (UShort) - +0x25B6 | 28 00 | uint16_t | 0x0028 (40) | table field `offset` (UShort) - +0x25B8 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: 0x2620 | offset to field `name` (string) - +0x25BC | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: 0x2610 | offset to field `type` (table) - +0x25C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x25C4 | offset to field `attributes` (vector) + +0x25D8 | BA FA FF FF | SOffset32 | 0xFFFFFABA (-1350) Loc: 0x2B1E | offset to vtable + +0x25DC | 12 00 | uint16_t | 0x0012 (18) | table field `id` (UShort) + +0x25DE | 28 00 | uint16_t | 0x0028 (40) | table field `offset` (UShort) + +0x25E0 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: 0x2648 | offset to field `name` (string) + +0x25E4 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: 0x2638 | offset to field `type` (table) + +0x25E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x25EC | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x25C4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x25C8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x25EC | offset to table[0] - +0x25CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x25D0 | offset to table[1] + +0x25EC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x25F0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2614 | offset to table[0] + +0x25F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x25F8 | offset to table[1] table (reflection.KeyValue): - +0x25D0 | 08 ED FF FF | SOffset32 | 0xFFFFED08 (-4856) Loc: 0x38C8 | offset to vtable - +0x25D4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x25E4 | offset to field `key` (string) - +0x25D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x25DC | offset to field `value` (string) + +0x25F8 | 10 ED FF FF | SOffset32 | 0xFFFFED10 (-4848) Loc: 0x38E8 | offset to vtable + +0x25FC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x260C | offset to field `key` (string) + +0x2600 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2604 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x25DC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x25E0 | 31 38 | char[2] | 18 | string literal - +0x25E2 | 00 | char | 0x00 (0) | string terminator + +0x2604 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2608 | 31 38 | char[2] | 18 | string literal + +0x260A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x25E4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x25E8 | 69 64 | char[2] | id | string literal - +0x25EA | 00 | char | 0x00 (0) | string terminator + +0x260C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2610 | 69 64 | char[2] | id | string literal + +0x2612 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x25EC | 24 ED FF FF | SOffset32 | 0xFFFFED24 (-4828) Loc: 0x38C8 | offset to vtable - +0x25F0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x2604 | offset to field `key` (string) - +0x25F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x25F8 | offset to field `value` (string) + +0x2614 | 2C ED FF FF | SOffset32 | 0xFFFFED2C (-4820) Loc: 0x38E8 | offset to vtable + +0x2618 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x262C | offset to field `key` (string) + +0x261C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2620 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x25F8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x25FC | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal - +0x2603 | 00 | char | 0x00 (0) | string terminator + +0x2620 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x2624 | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal + +0x262B | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2604 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2608 | 68 61 73 68 | char[4] | hash | string literal - +0x260C | 00 | char | 0x00 (0) | string terminator + +0x262C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2630 | 68 61 73 68 | char[4] | hash | string literal + +0x2634 | 00 | char | 0x00 (0) | string terminator padding: - +0x260D | 00 00 00 | uint8_t[3] | ... | padding + +0x2635 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2610 | 9C EF FF FF | SOffset32 | 0xFFFFEF9C (-4196) Loc: 0x3674 | offset to vtable - +0x2614 | 00 00 00 | uint8_t[3] | ... | padding - +0x2617 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) - +0x2618 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x261C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2638 | A4 EF FF FF | SOffset32 | 0xFFFFEFA4 (-4188) Loc: 0x3694 | offset to vtable + +0x263C | 00 00 00 | uint8_t[3] | ... | padding + +0x263F | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) + +0x2640 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x2644 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2620 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x2624 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal - +0x262C | 73 36 34 5F 66 6E 76 31 | | s64_fnv1 - +0x2634 | 00 | char | 0x00 (0) | string terminator + +0x2648 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x264C | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal + +0x2654 | 73 36 34 5F 66 6E 76 31 | | s64_fnv1 + +0x265C | 00 | char | 0x00 (0) | string terminator padding: - +0x2635 | 00 00 00 | uint8_t[3] | ... | padding + +0x265D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2638 | 40 FB FF FF | SOffset32 | 0xFFFFFB40 (-1216) Loc: 0x2AF8 | offset to vtable - +0x263C | 11 00 | uint16_t | 0x0011 (17) | table field `id` (UShort) - +0x263E | 26 00 | uint16_t | 0x0026 (38) | table field `offset` (UShort) - +0x2640 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: 0x26A4 | offset to field `name` (string) - +0x2644 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: 0x2698 | offset to field `type` (table) - +0x2648 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x264C | offset to field `attributes` (vector) + +0x2660 | 42 FB FF FF | SOffset32 | 0xFFFFFB42 (-1214) Loc: 0x2B1E | offset to vtable + +0x2664 | 11 00 | uint16_t | 0x0011 (17) | table field `id` (UShort) + +0x2666 | 26 00 | uint16_t | 0x0026 (38) | table field `offset` (UShort) + +0x2668 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: 0x26CC | offset to field `name` (string) + +0x266C | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: 0x26C0 | offset to field `type` (table) + +0x2670 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2674 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x264C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2650 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2674 | offset to table[0] - +0x2654 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2658 | offset to table[1] + +0x2674 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2678 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x269C | offset to table[0] + +0x267C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2680 | offset to table[1] table (reflection.KeyValue): - +0x2658 | 90 ED FF FF | SOffset32 | 0xFFFFED90 (-4720) Loc: 0x38C8 | offset to vtable - +0x265C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x266C | offset to field `key` (string) - +0x2660 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2664 | offset to field `value` (string) + +0x2680 | 98 ED FF FF | SOffset32 | 0xFFFFED98 (-4712) Loc: 0x38E8 | offset to vtable + +0x2684 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2694 | offset to field `key` (string) + +0x2688 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x268C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2664 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2668 | 31 37 | char[2] | 17 | string literal - +0x266A | 00 | char | 0x00 (0) | string terminator + +0x268C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2690 | 31 37 | char[2] | 17 | string literal + +0x2692 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x266C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2670 | 69 64 | char[2] | id | string literal - +0x2672 | 00 | char | 0x00 (0) | string terminator + +0x2694 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2698 | 69 64 | char[2] | id | string literal + +0x269A | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2674 | AC ED FF FF | SOffset32 | 0xFFFFEDAC (-4692) Loc: 0x38C8 | offset to vtable - +0x2678 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x268C | offset to field `key` (string) - +0x267C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2680 | offset to field `value` (string) + +0x269C | B4 ED FF FF | SOffset32 | 0xFFFFEDB4 (-4684) Loc: 0x38E8 | offset to vtable + +0x26A0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x26B4 | offset to field `key` (string) + +0x26A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x26A8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2680 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x2684 | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal - +0x268B | 00 | char | 0x00 (0) | string terminator + +0x26A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x26AC | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal + +0x26B3 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x268C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2690 | 68 61 73 68 | char[4] | hash | string literal - +0x2694 | 00 | char | 0x00 (0) | string terminator + +0x26B4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x26B8 | 68 61 73 68 | char[4] | hash | string literal + +0x26BC | 00 | char | 0x00 (0) | string terminator padding: - +0x2695 | 00 00 00 | uint8_t[3] | ... | padding + +0x26BD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2698 | BC ED FF FF | SOffset32 | 0xFFFFEDBC (-4676) Loc: 0x38DC | offset to vtable - +0x269C | 00 00 00 | uint8_t[3] | ... | padding - +0x269F | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) - +0x26A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x26C0 | C4 ED FF FF | SOffset32 | 0xFFFFEDC4 (-4668) Loc: 0x38FC | offset to vtable + +0x26C4 | 00 00 00 | uint8_t[3] | ... | padding + +0x26C7 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) + +0x26C8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x26A4 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x26A8 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal - +0x26B0 | 75 33 32 5F 66 6E 76 31 | | u32_fnv1 - +0x26B8 | 00 | char | 0x00 (0) | string terminator + +0x26CC | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x26D0 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal + +0x26D8 | 75 33 32 5F 66 6E 76 31 | | u32_fnv1 + +0x26E0 | 00 | char | 0x00 (0) | string terminator padding: - +0x26B9 | 00 00 00 | uint8_t[3] | ... | padding + +0x26E1 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x26BC | C4 FB FF FF | SOffset32 | 0xFFFFFBC4 (-1084) Loc: 0x2AF8 | offset to vtable - +0x26C0 | 10 00 | uint16_t | 0x0010 (16) | table field `id` (UShort) - +0x26C2 | 24 00 | uint16_t | 0x0024 (36) | table field `offset` (UShort) - +0x26C4 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: 0x2728 | offset to field `name` (string) - +0x26C8 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: 0x271C | offset to field `type` (table) - +0x26CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x26D0 | offset to field `attributes` (vector) + +0x26E4 | C6 FB FF FF | SOffset32 | 0xFFFFFBC6 (-1082) Loc: 0x2B1E | offset to vtable + +0x26E8 | 10 00 | uint16_t | 0x0010 (16) | table field `id` (UShort) + +0x26EA | 24 00 | uint16_t | 0x0024 (36) | table field `offset` (UShort) + +0x26EC | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: 0x2750 | offset to field `name` (string) + +0x26F0 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: 0x2744 | offset to field `type` (table) + +0x26F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x26F8 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x26D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x26D4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x26F8 | offset to table[0] - +0x26D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x26DC | offset to table[1] + +0x26F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x26FC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2720 | offset to table[0] + +0x2700 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2704 | offset to table[1] table (reflection.KeyValue): - +0x26DC | 14 EE FF FF | SOffset32 | 0xFFFFEE14 (-4588) Loc: 0x38C8 | offset to vtable - +0x26E0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x26F0 | offset to field `key` (string) - +0x26E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x26E8 | offset to field `value` (string) + +0x2704 | 1C EE FF FF | SOffset32 | 0xFFFFEE1C (-4580) Loc: 0x38E8 | offset to vtable + +0x2708 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2718 | offset to field `key` (string) + +0x270C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2710 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x26E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x26EC | 31 36 | char[2] | 16 | string literal - +0x26EE | 00 | char | 0x00 (0) | string terminator + +0x2710 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2714 | 31 36 | char[2] | 16 | string literal + +0x2716 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x26F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x26F4 | 69 64 | char[2] | id | string literal - +0x26F6 | 00 | char | 0x00 (0) | string terminator + +0x2718 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x271C | 69 64 | char[2] | id | string literal + +0x271E | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x26F8 | 30 EE FF FF | SOffset32 | 0xFFFFEE30 (-4560) Loc: 0x38C8 | offset to vtable - +0x26FC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x2710 | offset to field `key` (string) - +0x2700 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2704 | offset to field `value` (string) + +0x2720 | 38 EE FF FF | SOffset32 | 0xFFFFEE38 (-4552) Loc: 0x38E8 | offset to vtable + +0x2724 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x2738 | offset to field `key` (string) + +0x2728 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x272C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2704 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x2708 | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal - +0x270F | 00 | char | 0x00 (0) | string terminator + +0x272C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x2730 | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal + +0x2737 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2710 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2714 | 68 61 73 68 | char[4] | hash | string literal - +0x2718 | 00 | char | 0x00 (0) | string terminator + +0x2738 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x273C | 68 61 73 68 | char[4] | hash | string literal + +0x2740 | 00 | char | 0x00 (0) | string terminator padding: - +0x2719 | 00 00 00 | uint8_t[3] | ... | padding + +0x2741 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x271C | 40 EE FF FF | SOffset32 | 0xFFFFEE40 (-4544) Loc: 0x38DC | offset to vtable - +0x2720 | 00 00 00 | uint8_t[3] | ... | padding - +0x2723 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) - +0x2724 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2744 | 48 EE FF FF | SOffset32 | 0xFFFFEE48 (-4536) Loc: 0x38FC | offset to vtable + +0x2748 | 00 00 00 | uint8_t[3] | ... | padding + +0x274B | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) + +0x274C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2728 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x272C | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal - +0x2734 | 73 33 32 5F 66 6E 76 31 | | s32_fnv1 - +0x273C | 00 | char | 0x00 (0) | string terminator + +0x2750 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x2754 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal + +0x275C | 73 33 32 5F 66 6E 76 31 | | s32_fnv1 + +0x2764 | 00 | char | 0x00 (0) | string terminator padding: - +0x273D | 00 00 00 | uint8_t[3] | ... | padding + +0x2765 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2740 | 48 FC FF FF | SOffset32 | 0xFFFFFC48 (-952) Loc: 0x2AF8 | offset to vtable - +0x2744 | 0F 00 | uint16_t | 0x000F (15) | table field `id` (UShort) - +0x2746 | 22 00 | uint16_t | 0x0022 (34) | table field `offset` (UShort) - +0x2748 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x2788 | offset to field `name` (string) - +0x274C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2778 | offset to field `type` (table) - +0x2750 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2754 | offset to field `attributes` (vector) + +0x2768 | 4A FC FF FF | SOffset32 | 0xFFFFFC4A (-950) Loc: 0x2B1E | offset to vtable + +0x276C | 0F 00 | uint16_t | 0x000F (15) | table field `id` (UShort) + +0x276E | 22 00 | uint16_t | 0x0022 (34) | table field `offset` (UShort) + +0x2770 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x27B0 | offset to field `name` (string) + +0x2774 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x27A0 | offset to field `type` (table) + +0x2778 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x277C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2754 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2758 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x275C | offset to table[0] + +0x277C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2780 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2784 | offset to table[0] table (reflection.KeyValue): - +0x275C | 94 EE FF FF | SOffset32 | 0xFFFFEE94 (-4460) Loc: 0x38C8 | offset to vtable - +0x2760 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2770 | offset to field `key` (string) - +0x2764 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2768 | offset to field `value` (string) + +0x2784 | 9C EE FF FF | SOffset32 | 0xFFFFEE9C (-4452) Loc: 0x38E8 | offset to vtable + +0x2788 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2798 | offset to field `key` (string) + +0x278C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2790 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2768 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x276C | 31 35 | char[2] | 15 | string literal - +0x276E | 00 | char | 0x00 (0) | string terminator + +0x2790 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2794 | 31 35 | char[2] | 15 | string literal + +0x2796 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2770 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2774 | 69 64 | char[2] | id | string literal - +0x2776 | 00 | char | 0x00 (0) | string terminator + +0x2798 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x279C | 69 64 | char[2] | id | string literal + +0x279E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2778 | 04 F1 FF FF | SOffset32 | 0xFFFFF104 (-3836) Loc: 0x3674 | offset to vtable - +0x277C | 00 00 00 | uint8_t[3] | ... | padding - +0x277F | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte) - +0x2780 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x2784 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x27A0 | 0C F1 FF FF | SOffset32 | 0xFFFFF10C (-3828) Loc: 0x3694 | offset to vtable + +0x27A4 | 00 00 00 | uint8_t[3] | ... | padding + +0x27A7 | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte) + +0x27A8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x27AC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2788 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x278C | 74 65 73 74 62 6F 6F 6C | char[8] | testbool | string literal - +0x2794 | 00 | char | 0x00 (0) | string terminator + +0x27B0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x27B4 | 74 65 73 74 62 6F 6F 6C | char[8] | testbool | string literal + +0x27BC | 00 | char | 0x00 (0) | string terminator padding: - +0x2795 | 00 00 00 | uint8_t[3] | ... | padding + +0x27BD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2798 | B0 FB FF FF | SOffset32 | 0xFFFFFBB0 (-1104) Loc: 0x2BE8 | offset to vtable - +0x279C | 00 00 00 | uint8_t[3] | ... | padding - +0x279F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x27A0 | 0E 00 | uint16_t | 0x000E (14) | table field `id` (UShort) - +0x27A2 | 20 00 | uint16_t | 0x0020 (32) | table field `offset` (UShort) - +0x27A4 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x27E4 | offset to field `name` (string) - +0x27A8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x27D4 | offset to field `type` (table) - +0x27AC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x27B0 | offset to field `attributes` (vector) + +0x27C0 | CA FB FF FF | SOffset32 | 0xFFFFFBCA (-1078) Loc: 0x2BF6 | offset to vtable + +0x27C4 | 00 00 00 | uint8_t[3] | ... | padding + +0x27C7 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x27C8 | 0E 00 | uint16_t | 0x000E (14) | table field `id` (UShort) + +0x27CA | 20 00 | uint16_t | 0x0020 (32) | table field `offset` (UShort) + +0x27CC | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x280C | offset to field `name` (string) + +0x27D0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x27FC | offset to field `type` (table) + +0x27D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x27D8 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x27B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x27B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x27B8 | offset to table[0] + +0x27D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x27DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x27E0 | offset to table[0] table (reflection.KeyValue): - +0x27B8 | F0 EE FF FF | SOffset32 | 0xFFFFEEF0 (-4368) Loc: 0x38C8 | offset to vtable - +0x27BC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x27CC | offset to field `key` (string) - +0x27C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x27C4 | offset to field `value` (string) + +0x27E0 | F8 EE FF FF | SOffset32 | 0xFFFFEEF8 (-4360) Loc: 0x38E8 | offset to vtable + +0x27E4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x27F4 | offset to field `key` (string) + +0x27E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x27EC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x27C4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x27C8 | 31 34 | char[2] | 14 | string literal - +0x27CA | 00 | char | 0x00 (0) | string terminator + +0x27EC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x27F0 | 31 34 | char[2] | 14 | string literal + +0x27F2 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x27CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x27D0 | 69 64 | char[2] | id | string literal - +0x27D2 | 00 | char | 0x00 (0) | string terminator + +0x27F4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x27F8 | 69 64 | char[2] | id | string literal + +0x27FA | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x27D4 | BC EF FF FF | SOffset32 | 0xFFFFEFBC (-4164) Loc: 0x3818 | offset to vtable - +0x27D8 | 00 00 00 | uint8_t[3] | ... | padding - +0x27DB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x27DC | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x27E0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x27FC | C4 EF FF FF | SOffset32 | 0xFFFFEFC4 (-4156) Loc: 0x3838 | offset to vtable + +0x2800 | 00 00 00 | uint8_t[3] | ... | padding + +0x2803 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x2804 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x2808 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x27E4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x27E8 | 74 65 73 74 65 6D 70 74 | char[9] | testempt | string literal - +0x27F0 | 79 | | y - +0x27F1 | 00 | char | 0x00 (0) | string terminator + +0x280C | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x2810 | 74 65 73 74 65 6D 70 74 | char[9] | testempt | string literal + +0x2818 | 79 | | y + +0x2819 | 00 | char | 0x00 (0) | string terminator padding: - +0x27F2 | 00 00 | uint8_t[2] | .. | padding + +0x281A | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x27F4 | 0C FC FF FF | SOffset32 | 0xFFFFFC0C (-1012) Loc: 0x2BE8 | offset to vtable - +0x27F8 | 00 00 00 | uint8_t[3] | ... | padding - +0x27FB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x27FC | 0D 00 | uint16_t | 0x000D (13) | table field `id` (UShort) - +0x27FE | 1E 00 | uint16_t | 0x001E (30) | table field `offset` (UShort) - +0x2800 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: 0x2870 | offset to field `name` (string) - +0x2804 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: 0x2864 | offset to field `type` (table) - +0x2808 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x280C | offset to field `attributes` (vector) + +0x281C | 26 FC FF FF | SOffset32 | 0xFFFFFC26 (-986) Loc: 0x2BF6 | offset to vtable + +0x2820 | 00 00 00 | uint8_t[3] | ... | padding + +0x2823 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2824 | 0D 00 | uint16_t | 0x000D (13) | table field `id` (UShort) + +0x2826 | 1E 00 | uint16_t | 0x001E (30) | table field `offset` (UShort) + +0x2828 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: 0x2898 | offset to field `name` (string) + +0x282C | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: 0x288C | offset to field `type` (table) + +0x2830 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2834 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x280C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2810 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x2848 | offset to table[0] - +0x2814 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2818 | offset to table[1] + +0x2834 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2838 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x2870 | offset to table[0] + +0x283C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2840 | offset to table[1] table (reflection.KeyValue): - +0x2818 | 50 EF FF FF | SOffset32 | 0xFFFFEF50 (-4272) Loc: 0x38C8 | offset to vtable - +0x281C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x2830 | offset to field `key` (string) - +0x2820 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2824 | offset to field `value` (string) + +0x2840 | 58 EF FF FF | SOffset32 | 0xFFFFEF58 (-4264) Loc: 0x38E8 | offset to vtable + +0x2844 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x2858 | offset to field `key` (string) + +0x2848 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x284C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2824 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x2828 | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal - +0x282F | 00 | char | 0x00 (0) | string terminator + +0x284C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x2850 | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal + +0x2857 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2830 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x2834 | 6E 65 73 74 65 64 5F 66 | char[17] | nested_f | string literal - +0x283C | 6C 61 74 62 75 66 66 65 | | latbuffe - +0x2844 | 72 | | r - +0x2845 | 00 | char | 0x00 (0) | string terminator + +0x2858 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x285C | 6E 65 73 74 65 64 5F 66 | char[17] | nested_f | string literal + +0x2864 | 6C 61 74 62 75 66 66 65 | | latbuffe + +0x286C | 72 | | r + +0x286D | 00 | char | 0x00 (0) | string terminator padding: - +0x2846 | 00 00 | uint8_t[2] | .. | padding + +0x286E | 00 00 | uint8_t[2] | .. | padding table (reflection.KeyValue): - +0x2848 | 80 EF FF FF | SOffset32 | 0xFFFFEF80 (-4224) Loc: 0x38C8 | offset to vtable - +0x284C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x285C | offset to field `key` (string) - +0x2850 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2854 | offset to field `value` (string) + +0x2870 | 88 EF FF FF | SOffset32 | 0xFFFFEF88 (-4216) Loc: 0x38E8 | offset to vtable + +0x2874 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2884 | offset to field `key` (string) + +0x2878 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x287C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2854 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2858 | 31 33 | char[2] | 13 | string literal - +0x285A | 00 | char | 0x00 (0) | string terminator + +0x287C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2880 | 31 33 | char[2] | 13 | string literal + +0x2882 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x285C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2860 | 69 64 | char[2] | id | string literal - +0x2862 | 00 | char | 0x00 (0) | string terminator + +0x2884 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2888 | 69 64 | char[2] | id | string literal + +0x288A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2864 | 24 FC FF FF | SOffset32 | 0xFFFFFC24 (-988) Loc: 0x2C40 | offset to vtable - +0x2868 | 00 00 | uint8_t[2] | .. | padding - +0x286A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x286B | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) - +0x286C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x288C | 3C FC FF FF | SOffset32 | 0xFFFFFC3C (-964) Loc: 0x2C50 | offset to vtable + +0x2890 | 00 00 | uint8_t[2] | .. | padding + +0x2892 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2893 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) + +0x2894 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2870 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string - +0x2874 | 74 65 73 74 6E 65 73 74 | char[20] | testnest | string literal - +0x287C | 65 64 66 6C 61 74 62 75 | | edflatbu - +0x2884 | 66 66 65 72 | | ffer - +0x2888 | 00 | char | 0x00 (0) | string terminator + +0x2898 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string + +0x289C | 74 65 73 74 6E 65 73 74 | char[20] | testnest | string literal + +0x28A4 | 65 64 66 6C 61 74 62 75 | | edflatbu + +0x28AC | 66 66 65 72 | | ffer + +0x28B0 | 00 | char | 0x00 (0) | string terminator padding: - +0x2889 | 00 00 00 | uint8_t[3] | ... | padding + +0x28B1 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x288C | A4 FC FF FF | SOffset32 | 0xFFFFFCA4 (-860) Loc: 0x2BE8 | offset to vtable - +0x2890 | 00 00 00 | uint8_t[3] | ... | padding - +0x2893 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2894 | 0C 00 | uint16_t | 0x000C (12) | table field `id` (UShort) - +0x2896 | 1C 00 | uint16_t | 0x001C (28) | table field `offset` (UShort) - +0x2898 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x28D8 | offset to field `name` (string) - +0x289C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x28C8 | offset to field `type` (table) - +0x28A0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x28A4 | offset to field `attributes` (vector) + +0x28B4 | BE FC FF FF | SOffset32 | 0xFFFFFCBE (-834) Loc: 0x2BF6 | offset to vtable + +0x28B8 | 00 00 00 | uint8_t[3] | ... | padding + +0x28BB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x28BC | 0C 00 | uint16_t | 0x000C (12) | table field `id` (UShort) + +0x28BE | 1C 00 | uint16_t | 0x001C (28) | table field `offset` (UShort) + +0x28C0 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x2900 | offset to field `name` (string) + +0x28C4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x28F0 | offset to field `type` (table) + +0x28C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x28CC | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x28A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x28A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x28AC | offset to table[0] + +0x28CC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x28D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x28D4 | offset to table[0] table (reflection.KeyValue): - +0x28AC | E4 EF FF FF | SOffset32 | 0xFFFFEFE4 (-4124) Loc: 0x38C8 | offset to vtable - +0x28B0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x28C0 | offset to field `key` (string) - +0x28B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x28B8 | offset to field `value` (string) + +0x28D4 | EC EF FF FF | SOffset32 | 0xFFFFEFEC (-4116) Loc: 0x38E8 | offset to vtable + +0x28D8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x28E8 | offset to field `key` (string) + +0x28DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x28E0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x28B8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x28BC | 31 32 | char[2] | 12 | string literal - +0x28BE | 00 | char | 0x00 (0) | string terminator + +0x28E0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x28E4 | 31 32 | char[2] | 12 | string literal + +0x28E6 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x28C0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x28C4 | 69 64 | char[2] | id | string literal - +0x28C6 | 00 | char | 0x00 (0) | string terminator + +0x28E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x28EC | 69 64 | char[2] | id | string literal + +0x28EE | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x28C8 | B0 F0 FF FF | SOffset32 | 0xFFFFF0B0 (-3920) Loc: 0x3818 | offset to vtable - +0x28CC | 00 00 00 | uint8_t[3] | ... | padding - +0x28CF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x28D0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x28D4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x28F0 | B8 F0 FF FF | SOffset32 | 0xFFFFF0B8 (-3912) Loc: 0x3838 | offset to vtable + +0x28F4 | 00 00 00 | uint8_t[3] | ... | padding + +0x28F7 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x28F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x28FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x28D8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x28DC | 65 6E 65 6D 79 | char[5] | enemy | string literal - +0x28E1 | 00 | char | 0x00 (0) | string terminator - -padding: - +0x28E2 | 00 00 | uint8_t[2] | .. | padding + +0x2900 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x2904 | 65 6E 65 6D 79 | char[5] | enemy | string literal + +0x2909 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x28E4 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x28E6 | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x28E8 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x28EA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x28EC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x28EE | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x28F0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x28F2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x28F4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x28F6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x28F8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x28FA | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) - +0x28FC | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10) - +0x28FE | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) + +0x290A | 1E 00 | uint16_t | 0x001E (30) | size of this vtable + +0x290C | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x290E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x2910 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x2912 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x2914 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x2916 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2918 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x291A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x291C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated_readonly` (id: 7) (Bool) + +0x291E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 8) (Bool) + +0x2920 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 9) (Bool) + +0x2922 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 10) + +0x2924 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 11) + +0x2926 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 12) table (reflection.Field): - +0x2900 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: 0x28E4 | offset to vtable - +0x2904 | 00 00 00 | uint8_t[3] | ... | padding - +0x2907 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2908 | 0B 00 | uint16_t | 0x000B (11) | table field `id` (UShort) - +0x290A | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) - +0x290C | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: 0x29C0 | offset to field `name` (string) - +0x2910 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x29B0 | offset to field `type` (table) - +0x2914 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: 0x298C | offset to field `attributes` (vector) - +0x2918 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x291C | offset to field `documentation` (vector) + +0x2928 | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: 0x290A | offset to vtable + +0x292C | 00 00 00 | uint8_t[3] | ... | padding + +0x292F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2930 | 0B 00 | uint16_t | 0x000B (11) | table field `id` (UShort) + +0x2932 | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) + +0x2934 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: 0x29E8 | offset to field `name` (string) + +0x2938 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x29D8 | offset to field `type` (table) + +0x293C | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: 0x29B4 | offset to field `attributes` (vector) + +0x2940 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2944 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x291C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2920 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x293C | offset to string[0] - +0x2924 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2928 | offset to string[1] + +0x2944 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2948 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x2964 | offset to string[0] + +0x294C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2950 | offset to string[1] string (reflection.Field.documentation): - +0x2928 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string - +0x292C | 20 6D 75 6C 74 69 6C 69 | char[14] | multili | string literal - +0x2934 | 6E 65 20 74 6F 6F | | ne too - +0x293A | 00 | char | 0x00 (0) | string terminator + +0x2950 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string + +0x2954 | 20 6D 75 6C 74 69 6C 69 | char[14] | multili | string literal + +0x295C | 6E 65 20 74 6F 6F | | ne too + +0x2962 | 00 | char | 0x00 (0) | string terminator string (reflection.Field.documentation): - +0x293C | 49 00 00 00 | uint32_t | 0x00000049 (73) | length of string - +0x2940 | 20 61 6E 20 65 78 61 6D | char[73] | an exam | string literal - +0x2948 | 70 6C 65 20 64 6F 63 75 | | ple docu - +0x2950 | 6D 65 6E 74 61 74 69 6F | | mentatio - +0x2958 | 6E 20 63 6F 6D 6D 65 6E | | n commen - +0x2960 | 74 3A 20 74 68 69 73 20 | | t: this - +0x2968 | 77 69 6C 6C 20 65 6E 64 | | will end - +0x2970 | 20 75 70 20 69 6E 20 74 | | up in t - +0x2978 | 68 65 20 67 65 6E 65 72 | | he gener - +0x2980 | 61 74 65 64 20 63 6F 64 | | ated cod - +0x2988 | 65 | | e - +0x2989 | 00 | char | 0x00 (0) | string terminator - -padding: - +0x298A | 00 00 | uint8_t[2] | .. | padding + +0x2964 | 49 00 00 00 | uint32_t | 0x00000049 (73) | length of string + +0x2968 | 20 61 6E 20 65 78 61 6D | char[73] | an exam | string literal + +0x2970 | 70 6C 65 20 64 6F 63 75 | | ple docu + +0x2978 | 6D 65 6E 74 61 74 69 6F | | mentatio + +0x2980 | 6E 20 63 6F 6D 6D 65 6E | | n commen + +0x2988 | 74 3A 20 74 68 69 73 20 | | t: this + +0x2990 | 77 69 6C 6C 20 65 6E 64 | | will end + +0x2998 | 20 75 70 20 69 6E 20 74 | | up in t + +0x29A0 | 68 65 20 67 65 6E 65 72 | | he gener + +0x29A8 | 61 74 65 64 20 63 6F 64 | | ated cod + +0x29B0 | 65 | | e + +0x29B1 | 00 | char | 0x00 (0) | string terminator + +padding: + +0x29B2 | 00 00 | uint8_t[2] | .. | padding vector (reflection.Field.attributes): - +0x298C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2990 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2994 | offset to table[0] + +0x29B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x29B8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x29BC | offset to table[0] table (reflection.KeyValue): - +0x2994 | CC F0 FF FF | SOffset32 | 0xFFFFF0CC (-3892) Loc: 0x38C8 | offset to vtable - +0x2998 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x29A8 | offset to field `key` (string) - +0x299C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x29A0 | offset to field `value` (string) + +0x29BC | D4 F0 FF FF | SOffset32 | 0xFFFFF0D4 (-3884) Loc: 0x38E8 | offset to vtable + +0x29C0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x29D0 | offset to field `key` (string) + +0x29C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x29C8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x29A0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x29A4 | 31 31 | char[2] | 11 | string literal - +0x29A6 | 00 | char | 0x00 (0) | string terminator + +0x29C8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x29CC | 31 31 | char[2] | 11 | string literal + +0x29CE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x29A8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x29AC | 69 64 | char[2] | id | string literal - +0x29AE | 00 | char | 0x00 (0) | string terminator + +0x29D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x29D4 | 69 64 | char[2] | id | string literal + +0x29D6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x29B0 | 3C FF FF FF | SOffset32 | 0xFFFFFF3C (-196) Loc: 0x2A74 | offset to vtable - +0x29B4 | 00 00 | uint8_t[2] | .. | padding - +0x29B6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x29B7 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x29B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x29BC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x29D8 | 3C FF FF FF | SOffset32 | 0xFFFFFF3C (-196) Loc: 0x2A9C | offset to vtable + +0x29DC | 00 00 | uint8_t[2] | .. | padding + +0x29DE | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x29DF | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x29E0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x29E4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x29C0 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x29C4 | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal - +0x29CC | 79 6F 66 74 61 62 6C 65 | | yoftable - +0x29D4 | 73 | | s - +0x29D5 | 00 | char | 0x00 (0) | string terminator + +0x29E8 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x29EC | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal + +0x29F4 | 79 6F 66 74 61 62 6C 65 | | yoftable + +0x29FC | 73 | | s + +0x29FD | 00 | char | 0x00 (0) | string terminator padding: - +0x29D6 | 00 00 | uint8_t[2] | .. | padding + +0x29FE | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x29D8 | F0 FD FF FF | SOffset32 | 0xFFFFFDF0 (-528) Loc: 0x2BE8 | offset to vtable - +0x29DC | 00 00 00 | uint8_t[3] | ... | padding - +0x29DF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x29E0 | 0A 00 | uint16_t | 0x000A (10) | table field `id` (UShort) - +0x29E2 | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) - +0x29E4 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x2A20 | offset to field `name` (string) - +0x29E8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2A14 | offset to field `type` (table) - +0x29EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x29F0 | offset to field `attributes` (vector) + +0x2A00 | 0A FE FF FF | SOffset32 | 0xFFFFFE0A (-502) Loc: 0x2BF6 | offset to vtable + +0x2A04 | 00 00 00 | uint8_t[3] | ... | padding + +0x2A07 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2A08 | 0A 00 | uint16_t | 0x000A (10) | table field `id` (UShort) + +0x2A0A | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) + +0x2A0C | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x2A48 | offset to field `name` (string) + +0x2A10 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2A3C | offset to field `type` (table) + +0x2A14 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2A18 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x29F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x29F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x29F8 | offset to table[0] + +0x2A18 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2A1C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2A20 | offset to table[0] table (reflection.KeyValue): - +0x29F8 | 30 F1 FF FF | SOffset32 | 0xFFFFF130 (-3792) Loc: 0x38C8 | offset to vtable - +0x29FC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2A0C | offset to field `key` (string) - +0x2A00 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2A04 | offset to field `value` (string) + +0x2A20 | 38 F1 FF FF | SOffset32 | 0xFFFFF138 (-3784) Loc: 0x38E8 | offset to vtable + +0x2A24 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2A34 | offset to field `key` (string) + +0x2A28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2A2C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2A04 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2A08 | 31 30 | char[2] | 10 | string literal - +0x2A0A | 00 | char | 0x00 (0) | string terminator + +0x2A2C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2A30 | 31 30 | char[2] | 10 | string literal + +0x2A32 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2A0C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2A10 | 69 64 | char[2] | id | string literal - +0x2A12 | 00 | char | 0x00 (0) | string terminator + +0x2A34 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2A38 | 69 64 | char[2] | id | string literal + +0x2A3A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2A14 | D4 FD FF FF | SOffset32 | 0xFFFFFDD4 (-556) Loc: 0x2C40 | offset to vtable - +0x2A18 | 00 00 | uint8_t[2] | .. | padding - +0x2A1A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2A1B | 0D | uint8_t | 0x0D (13) | table field `element` (Byte) - +0x2A1C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x2A3C | EC FD FF FF | SOffset32 | 0xFFFFFDEC (-532) Loc: 0x2C50 | offset to vtable + +0x2A40 | 00 00 | uint8_t[2] | .. | padding + +0x2A42 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2A43 | 0D | uint8_t | 0x0D (13) | table field `element` (Byte) + +0x2A44 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2A20 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x2A24 | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal - +0x2A2C | 79 6F 66 73 74 72 69 6E | | yofstrin - +0x2A34 | 67 | | g - +0x2A35 | 00 | char | 0x00 (0) | string terminator + +0x2A48 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x2A4C | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal + +0x2A54 | 79 6F 66 73 74 72 69 6E | | yofstrin + +0x2A5C | 67 | | g + +0x2A5D | 00 | char | 0x00 (0) | string terminator padding: - +0x2A36 | 00 00 | uint8_t[2] | .. | padding + +0x2A5E | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2A38 | 50 FE FF FF | SOffset32 | 0xFFFFFE50 (-432) Loc: 0x2BE8 | offset to vtable - +0x2A3C | 00 00 00 | uint8_t[3] | ... | padding - +0x2A3F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2A40 | 09 00 | uint16_t | 0x0009 (9) | table field `id` (UShort) - +0x2A42 | 16 00 | uint16_t | 0x0016 (22) | table field `offset` (UShort) - +0x2A44 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x2A94 | offset to field `name` (string) - +0x2A48 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x2A84 | offset to field `type` (table) - +0x2A4C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2A50 | offset to field `attributes` (vector) + +0x2A60 | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x2BF6 | offset to vtable + +0x2A64 | 00 00 00 | uint8_t[3] | ... | padding + +0x2A67 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2A68 | 09 00 | uint16_t | 0x0009 (9) | table field `id` (UShort) + +0x2A6A | 16 00 | uint16_t | 0x0016 (22) | table field `offset` (UShort) + +0x2A6C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x2ABC | offset to field `name` (string) + +0x2A70 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x2AAC | offset to field `type` (table) + +0x2A74 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2A78 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2A50 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2A54 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2A58 | offset to table[0] + +0x2A78 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2A7C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2A80 | offset to table[0] table (reflection.KeyValue): - +0x2A58 | 90 F1 FF FF | SOffset32 | 0xFFFFF190 (-3696) Loc: 0x38C8 | offset to vtable - +0x2A5C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2A6C | offset to field `key` (string) - +0x2A60 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2A64 | offset to field `value` (string) + +0x2A80 | 98 F1 FF FF | SOffset32 | 0xFFFFF198 (-3688) Loc: 0x38E8 | offset to vtable + +0x2A84 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2A94 | offset to field `key` (string) + +0x2A88 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2A8C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2A64 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2A68 | 39 | char[1] | 9 | string literal - +0x2A69 | 00 | char | 0x00 (0) | string terminator + +0x2A8C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2A90 | 39 | char[1] | 9 | string literal + +0x2A91 | 00 | char | 0x00 (0) | string terminator padding: - +0x2A6A | 00 00 | uint8_t[2] | .. | padding + +0x2A92 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2A6C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2A70 | 69 64 | char[2] | id | string literal - +0x2A72 | 00 | char | 0x00 (0) | string terminator + +0x2A94 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2A98 | 69 64 | char[2] | id | string literal + +0x2A9A | 00 | char | 0x00 (0) | string terminator vtable (reflection.Type): - +0x2A74 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x2A76 | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x2A78 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0) - +0x2A7A | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1) - +0x2A7C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) - +0x2A7E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x2A80 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) - +0x2A82 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) + +0x2A9C | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x2A9E | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x2AA0 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0) + +0x2AA2 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1) + +0x2AA4 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) + +0x2AA6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x2AA8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) + +0x2AAA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x2A84 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: 0x2A74 | offset to vtable - +0x2A88 | 00 00 | uint8_t[2] | .. | padding - +0x2A8A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2A8B | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x2A8C | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x2A90 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x2AAC | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: 0x2A9C | offset to vtable + +0x2AB0 | 00 00 | uint8_t[2] | .. | padding + +0x2AB2 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2AB3 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x2AB4 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x2AB8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2A94 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x2A98 | 74 65 73 74 34 | char[5] | test4 | string literal - +0x2A9D | 00 | char | 0x00 (0) | string terminator + +0x2ABC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x2AC0 | 74 65 73 74 34 | char[5] | test4 | string literal + +0x2AC5 | 00 | char | 0x00 (0) | string terminator padding: - +0x2A9E | 00 00 | uint8_t[2] | .. | padding + +0x2AC6 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2AA0 | B8 FE FF FF | SOffset32 | 0xFFFFFEB8 (-328) Loc: 0x2BE8 | offset to vtable - +0x2AA4 | 00 00 00 | uint8_t[3] | ... | padding - +0x2AA7 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2AA8 | 08 00 | uint16_t | 0x0008 (8) | table field `id` (UShort) - +0x2AAA | 14 00 | uint16_t | 0x0014 (20) | table field `offset` (UShort) - +0x2AAC | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x2AEC | offset to field `name` (string) - +0x2AB0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2ADC | offset to field `type` (table) - +0x2AB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2AB8 | offset to field `attributes` (vector) + +0x2AC8 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x2BF6 | offset to vtable + +0x2ACC | 00 00 00 | uint8_t[3] | ... | padding + +0x2ACF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2AD0 | 08 00 | uint16_t | 0x0008 (8) | table field `id` (UShort) + +0x2AD2 | 14 00 | uint16_t | 0x0014 (20) | table field `offset` (UShort) + +0x2AD4 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x2B14 | offset to field `name` (string) + +0x2AD8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2B04 | offset to field `type` (table) + +0x2ADC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2AE0 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2AB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2ABC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2AC0 | offset to table[0] + +0x2AE0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2AE4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2AE8 | offset to table[0] table (reflection.KeyValue): - +0x2AC0 | F8 F1 FF FF | SOffset32 | 0xFFFFF1F8 (-3592) Loc: 0x38C8 | offset to vtable - +0x2AC4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2AD4 | offset to field `key` (string) - +0x2AC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2ACC | offset to field `value` (string) + +0x2AE8 | 00 F2 FF FF | SOffset32 | 0xFFFFF200 (-3584) Loc: 0x38E8 | offset to vtable + +0x2AEC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2AFC | offset to field `key` (string) + +0x2AF0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2AF4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2ACC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2AD0 | 38 | char[1] | 8 | string literal - +0x2AD1 | 00 | char | 0x00 (0) | string terminator + +0x2AF4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2AF8 | 38 | char[1] | 8 | string literal + +0x2AF9 | 00 | char | 0x00 (0) | string terminator padding: - +0x2AD2 | 00 00 | uint8_t[2] | .. | padding + +0x2AFA | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2AD4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2AD8 | 69 64 | char[2] | id | string literal - +0x2ADA | 00 | char | 0x00 (0) | string terminator + +0x2AFC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2B00 | 69 64 | char[2] | id | string literal + +0x2B02 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2ADC | C4 F2 FF FF | SOffset32 | 0xFFFFF2C4 (-3388) Loc: 0x3818 | offset to vtable - +0x2AE0 | 00 00 00 | uint8_t[3] | ... | padding - +0x2AE3 | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) - +0x2AE4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x2AE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2B04 | CC F2 FF FF | SOffset32 | 0xFFFFF2CC (-3380) Loc: 0x3838 | offset to vtable + +0x2B08 | 00 00 00 | uint8_t[3] | ... | padding + +0x2B0B | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) + +0x2B0C | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x2B10 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2AEC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2AF0 | 74 65 73 74 | char[4] | test | string literal - +0x2AF4 | 00 | char | 0x00 (0) | string terminator - -padding: - +0x2AF5 | 00 00 00 | uint8_t[3] | ... | padding + +0x2B14 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2B18 | 74 65 73 74 | char[4] | test | string literal + +0x2B1C | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x2AF8 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x2AFA | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x2AFC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x2AFE | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x2B00 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x2B02 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x2B04 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2B06 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2B08 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2B0A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2B0C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2B0E | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x2B1E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x2B20 | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x2B22 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x2B24 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x2B26 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x2B28 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x2B2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2B2C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2B2E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2B30 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated_readonly` (id: 7) (Bool) + +0x2B32 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 8) (Bool) + +0x2B34 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 9) (Bool) + +0x2B36 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 10) table (reflection.Field): - +0x2B10 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x2AF8 | offset to vtable - +0x2B14 | 07 00 | uint16_t | 0x0007 (7) | table field `id` (UShort) - +0x2B16 | 12 00 | uint16_t | 0x0012 (18) | table field `offset` (UShort) - +0x2B18 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x2B5C | offset to field `name` (string) - +0x2B1C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2B48 | offset to field `type` (table) - +0x2B20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2B24 | offset to field `attributes` (vector) + +0x2B38 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: 0x2B1E | offset to vtable + +0x2B3C | 07 00 | uint16_t | 0x0007 (7) | table field `id` (UShort) + +0x2B3E | 12 00 | uint16_t | 0x0012 (18) | table field `offset` (UShort) + +0x2B40 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x2B84 | offset to field `name` (string) + +0x2B44 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2B70 | offset to field `type` (table) + +0x2B48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2B4C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2B24 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2B28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2B2C | offset to table[0] + +0x2B4C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2B50 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2B54 | offset to table[0] table (reflection.KeyValue): - +0x2B2C | 64 F2 FF FF | SOffset32 | 0xFFFFF264 (-3484) Loc: 0x38C8 | offset to vtable - +0x2B30 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2B40 | offset to field `key` (string) - +0x2B34 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2B38 | offset to field `value` (string) + +0x2B54 | 6C F2 FF FF | SOffset32 | 0xFFFFF26C (-3476) Loc: 0x38E8 | offset to vtable + +0x2B58 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2B68 | offset to field `key` (string) + +0x2B5C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2B60 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2B38 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2B3C | 37 | char[1] | 7 | string literal - +0x2B3D | 00 | char | 0x00 (0) | string terminator + +0x2B60 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2B64 | 37 | char[1] | 7 | string literal + +0x2B65 | 00 | char | 0x00 (0) | string terminator padding: - +0x2B3E | 00 00 | uint8_t[2] | .. | padding + +0x2B66 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2B40 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2B44 | 69 64 | char[2] | id | string literal - +0x2B46 | 00 | char | 0x00 (0) | string terminator + +0x2B68 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2B6C | 69 64 | char[2] | id | string literal + +0x2B6E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2B48 | 9C F5 FF FF | SOffset32 | 0xFFFFF59C (-2660) Loc: 0x35AC | offset to vtable - +0x2B4C | 00 00 00 | uint8_t[3] | ... | padding - +0x2B4F | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) - +0x2B50 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x2B54 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x2B58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2B70 | A4 F5 FF FF | SOffset32 | 0xFFFFF5A4 (-2652) Loc: 0x35CC | offset to vtable + +0x2B74 | 00 00 00 | uint8_t[3] | ... | padding + +0x2B77 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) + +0x2B78 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x2B7C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x2B80 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2B5C | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x2B60 | 74 65 73 74 5F 74 79 70 | char[9] | test_typ | string literal - +0x2B68 | 65 | | e - +0x2B69 | 00 | char | 0x00 (0) | string terminator + +0x2B84 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x2B88 | 74 65 73 74 5F 74 79 70 | char[9] | test_typ | string literal + +0x2B90 | 65 | | e + +0x2B91 | 00 | char | 0x00 (0) | string terminator padding: - +0x2B6A | 00 00 | uint8_t[2] | .. | padding - -vtable (reflection.Field): - +0x2B6C | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x2B6E | 20 00 | uint16_t | 0x0020 (32) | size of referring table - +0x2B70 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x2B72 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x2B74 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x2B76 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x2B78 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_integer` (id: 4) - +0x2B7A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2B7C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2B7E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2B80 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2B82 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x2B92 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2B84 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x2B6C | offset to vtable - +0x2B88 | 06 00 | uint16_t | 0x0006 (6) | table field `id` (UShort) - +0x2B8A | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) - +0x2B8C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x2BDC | offset to field `name` (string) - +0x2B90 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x2BC8 | offset to field `type` (table) - +0x2B94 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2BA4 | offset to field `attributes` (vector) - +0x2B98 | 08 00 00 00 00 00 00 00 | int64_t | 0x0000000000000008 (8) | table field `default_integer` (Long) - +0x2BA0 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x2B94 | 6A FD FF FF | SOffset32 | 0xFFFFFD6A (-662) Loc: 0x2E2A | offset to vtable + +0x2B98 | 06 00 | uint16_t | 0x0006 (6) | table field `id` (UShort) + +0x2B9A | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) + +0x2B9C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x2BEC | offset to field `name` (string) + +0x2BA0 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x2BD8 | offset to field `type` (table) + +0x2BA4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2BB4 | offset to field `attributes` (vector) + +0x2BA8 | 08 00 00 00 00 00 00 00 | int64_t | 0x0000000000000008 (8) | table field `default_integer` (Long) + +0x2BB0 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.attributes): - +0x2BA4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2BA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2BAC | offset to table[0] + +0x2BB4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2BB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2BBC | offset to table[0] table (reflection.KeyValue): - +0x2BAC | E4 F2 FF FF | SOffset32 | 0xFFFFF2E4 (-3356) Loc: 0x38C8 | offset to vtable - +0x2BB0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2BC0 | offset to field `key` (string) - +0x2BB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2BB8 | offset to field `value` (string) + +0x2BBC | D4 F2 FF FF | SOffset32 | 0xFFFFF2D4 (-3372) Loc: 0x38E8 | offset to vtable + +0x2BC0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2BD0 | offset to field `key` (string) + +0x2BC4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2BC8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2BB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2BBC | 36 | char[1] | 6 | string literal - +0x2BBD | 00 | char | 0x00 (0) | string terminator + +0x2BC8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2BCC | 36 | char[1] | 6 | string literal + +0x2BCD | 00 | char | 0x00 (0) | string terminator padding: - +0x2BBE | 00 00 | uint8_t[2] | .. | padding + +0x2BCE | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2BC0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2BC4 | 69 64 | char[2] | id | string literal - +0x2BC6 | 00 | char | 0x00 (0) | string terminator + +0x2BD0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2BD4 | 69 64 | char[2] | id | string literal + +0x2BD6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2BC8 | 1C F6 FF FF | SOffset32 | 0xFFFFF61C (-2532) Loc: 0x35AC | offset to vtable - +0x2BCC | 00 00 00 | uint8_t[3] | ... | padding - +0x2BCF | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) - +0x2BD0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x2BD4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x2BD8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2BD8 | 0C F6 FF FF | SOffset32 | 0xFFFFF60C (-2548) Loc: 0x35CC | offset to vtable + +0x2BDC | 00 00 00 | uint8_t[3] | ... | padding + +0x2BDF | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) + +0x2BE0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x2BE4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x2BE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2BDC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x2BE0 | 63 6F 6C 6F 72 | char[5] | color | string literal - +0x2BE5 | 00 | char | 0x00 (0) | string terminator - -padding: - +0x2BE6 | 00 00 | uint8_t[2] | .. | padding + +0x2BEC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x2BF0 | 63 6F 6C 6F 72 | char[5] | color | string literal + +0x2BF5 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x2BE8 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x2BEA | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x2BEC | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x2BEE | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x2BF0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x2BF2 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x2BF4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2BF6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2BF8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2BFA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2BFC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2BFE | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) - +0x2C00 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) - +0x2C02 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) + +0x2BF6 | 1E 00 | uint16_t | 0x001E (30) | size of this vtable + +0x2BF8 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x2BFA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x2BFC | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x2BFE | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x2C00 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x2C02 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2C04 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2C06 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2C08 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated_readonly` (id: 7) (Bool) + +0x2C0A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 8) (Bool) + +0x2C0C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 9) (Bool) + +0x2C0E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 10) + +0x2C10 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 11) (Vector) + +0x2C12 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 12) table (reflection.Field): - +0x2C04 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: 0x2BE8 | offset to vtable - +0x2C08 | 00 00 00 | uint8_t[3] | ... | padding - +0x2C0B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2C0C | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) - +0x2C0E | 0E 00 | uint16_t | 0x000E (14) | table field `offset` (UShort) - +0x2C10 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: 0x2C5C | offset to field `name` (string) - +0x2C14 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x2C50 | offset to field `type` (table) - +0x2C18 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2C1C | offset to field `attributes` (vector) + +0x2C14 | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: 0x2BF6 | offset to vtable + +0x2C18 | 00 00 00 | uint8_t[3] | ... | padding + +0x2C1B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2C1C | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) + +0x2C1E | 0E 00 | uint16_t | 0x000E (14) | table field `offset` (UShort) + +0x2C20 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: 0x2C6C | offset to field `name` (string) + +0x2C24 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x2C60 | offset to field `type` (table) + +0x2C28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2C2C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2C1C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2C20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2C24 | offset to table[0] + +0x2C2C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2C30 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2C34 | offset to table[0] table (reflection.KeyValue): - +0x2C24 | 5C F3 FF FF | SOffset32 | 0xFFFFF35C (-3236) Loc: 0x38C8 | offset to vtable - +0x2C28 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2C38 | offset to field `key` (string) - +0x2C2C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2C30 | offset to field `value` (string) + +0x2C34 | 4C F3 FF FF | SOffset32 | 0xFFFFF34C (-3252) Loc: 0x38E8 | offset to vtable + +0x2C38 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2C48 | offset to field `key` (string) + +0x2C3C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2C40 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2C30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2C34 | 35 | char[1] | 5 | string literal - +0x2C35 | 00 | char | 0x00 (0) | string terminator + +0x2C40 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2C44 | 35 | char[1] | 5 | string literal + +0x2C45 | 00 | char | 0x00 (0) | string terminator padding: - +0x2C36 | 00 00 | uint8_t[2] | .. | padding + +0x2C46 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2C38 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2C3C | 69 64 | char[2] | id | string literal - +0x2C3E | 00 | char | 0x00 (0) | string terminator + +0x2C48 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2C4C | 69 64 | char[2] | id | string literal + +0x2C4E | 00 | char | 0x00 (0) | string terminator vtable (reflection.Type): - +0x2C40 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x2C42 | 0C 00 | uint16_t | 0x000C (12) | size of referring table - +0x2C44 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0) - +0x2C46 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1) - +0x2C48 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) - +0x2C4A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x2C4C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) - +0x2C4E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) + +0x2C50 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x2C52 | 0C 00 | uint16_t | 0x000C (12) | size of referring table + +0x2C54 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0) + +0x2C56 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1) + +0x2C58 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) + +0x2C5A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x2C5C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) + +0x2C5E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x2C50 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: 0x2C40 | offset to vtable - +0x2C54 | 00 00 | uint8_t[2] | .. | padding - +0x2C56 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2C57 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) - +0x2C58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2C60 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: 0x2C50 | offset to vtable + +0x2C64 | 00 00 | uint8_t[2] | .. | padding + +0x2C66 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2C67 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) + +0x2C68 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2C5C | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x2C60 | 69 6E 76 65 6E 74 6F 72 | char[9] | inventor | string literal - +0x2C68 | 79 | | y - +0x2C69 | 00 | char | 0x00 (0) | string terminator - -padding: - +0x2C6A | 00 00 | uint8_t[2] | .. | padding + +0x2C6C | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x2C70 | 69 6E 76 65 6E 74 6F 72 | char[9] | inventor | string literal + +0x2C78 | 79 | | y + +0x2C79 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x2C6C | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x2C6E | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x2C70 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x2C72 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x2C74 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x2C76 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x2C78 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2C7A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2C7C | 07 00 | VOffset16 | 0x0007 (7) | offset to field `deprecated` (id: 6) - +0x2C7E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2C80 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2C82 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) + +0x2C7A | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x2C7C | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x2C7E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x2C80 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x2C82 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x2C84 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x2C86 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2C88 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2C8A | 07 00 | VOffset16 | 0x0007 (7) | offset to field `deprecated` (id: 6) + +0x2C8C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated_readonly` (id: 7) (Bool) + +0x2C8E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 8) (Bool) + +0x2C90 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 9) (Bool) + +0x2C92 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 10) table (reflection.Field): - +0x2C84 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x2C6C | offset to vtable - +0x2C88 | 00 00 00 | uint8_t[3] | ... | padding - +0x2C8B | 01 | uint8_t | 0x01 (1) | table field `deprecated` (Bool) - +0x2C8C | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) - +0x2C8E | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) - +0x2C90 | 90 00 00 00 | UOffset32 | 0x00000090 (144) Loc: 0x2D20 | offset to field `name` (string) - +0x2C94 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: 0x2D10 | offset to field `type` (table) - +0x2C98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2C9C | offset to field `attributes` (vector) + +0x2C94 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: 0x2C7A | offset to vtable + +0x2C98 | 00 00 00 | uint8_t[3] | ... | padding + +0x2C9B | 01 | uint8_t | 0x01 (1) | table field `deprecated` (Bool) + +0x2C9C | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) + +0x2C9E | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) + +0x2CA0 | 90 00 00 00 | UOffset32 | 0x00000090 (144) Loc: 0x2D30 | offset to field `name` (string) + +0x2CA4 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: 0x2D20 | offset to field `type` (table) + +0x2CA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2CAC | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2C9C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x2CA0 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: 0x2CEC | offset to table[0] - +0x2CA4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2CD0 | offset to table[1] - +0x2CA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2CAC | offset to table[2] + +0x2CAC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x2CB0 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: 0x2CFC | offset to table[0] + +0x2CB4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2CE0 | offset to table[1] + +0x2CB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2CBC | offset to table[2] table (reflection.KeyValue): - +0x2CAC | E4 F3 FF FF | SOffset32 | 0xFFFFF3E4 (-3100) Loc: 0x38C8 | offset to vtable - +0x2CB0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2CC0 | offset to field `key` (string) - +0x2CB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2CB8 | offset to field `value` (string) + +0x2CBC | D4 F3 FF FF | SOffset32 | 0xFFFFF3D4 (-3116) Loc: 0x38E8 | offset to vtable + +0x2CC0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2CD0 | offset to field `key` (string) + +0x2CC4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2CC8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2CB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2CBC | 31 | char[1] | 1 | string literal - +0x2CBD | 00 | char | 0x00 (0) | string terminator + +0x2CC8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2CCC | 31 | char[1] | 1 | string literal + +0x2CCD | 00 | char | 0x00 (0) | string terminator padding: - +0x2CBE | 00 00 | uint8_t[2] | .. | padding + +0x2CCE | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2CC0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x2CC4 | 70 72 69 6F 72 69 74 79 | char[8] | priority | string literal - +0x2CCC | 00 | char | 0x00 (0) | string terminator + +0x2CD0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x2CD4 | 70 72 69 6F 72 69 74 79 | char[8] | priority | string literal + +0x2CDC | 00 | char | 0x00 (0) | string terminator padding: - +0x2CCD | 00 00 00 | uint8_t[3] | ... | padding + +0x2CDD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x2CD0 | 08 F4 FF FF | SOffset32 | 0xFFFFF408 (-3064) Loc: 0x38C8 | offset to vtable - +0x2CD4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2CE4 | offset to field `key` (string) - +0x2CD8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2CDC | offset to field `value` (string) + +0x2CE0 | F8 F3 FF FF | SOffset32 | 0xFFFFF3F8 (-3080) Loc: 0x38E8 | offset to vtable + +0x2CE4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2CF4 | offset to field `key` (string) + +0x2CE8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2CEC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2CDC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2CE0 | 34 | char[1] | 4 | string literal - +0x2CE1 | 00 | char | 0x00 (0) | string terminator + +0x2CEC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2CF0 | 34 | char[1] | 4 | string literal + +0x2CF1 | 00 | char | 0x00 (0) | string terminator padding: - +0x2CE2 | 00 00 | uint8_t[2] | .. | padding + +0x2CF2 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2CE4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2CE8 | 69 64 | char[2] | id | string literal - +0x2CEA | 00 | char | 0x00 (0) | string terminator + +0x2CF4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2CF8 | 69 64 | char[2] | id | string literal + +0x2CFA | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2CEC | 24 F4 FF FF | SOffset32 | 0xFFFFF424 (-3036) Loc: 0x38C8 | offset to vtable - +0x2CF0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2D00 | offset to field `key` (string) - +0x2CF4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2CF8 | offset to field `value` (string) + +0x2CFC | 14 F4 FF FF | SOffset32 | 0xFFFFF414 (-3052) Loc: 0x38E8 | offset to vtable + +0x2D00 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2D10 | offset to field `key` (string) + +0x2D04 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2D08 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2CF8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2CFC | 30 | char[1] | 0 | string literal - +0x2CFD | 00 | char | 0x00 (0) | string terminator + +0x2D08 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2D0C | 30 | char[1] | 0 | string literal + +0x2D0D | 00 | char | 0x00 (0) | string terminator padding: - +0x2CFE | 00 00 | uint8_t[2] | .. | padding + +0x2D0E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2D00 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string - +0x2D04 | 64 65 70 72 65 63 61 74 | char[10] | deprecat | string literal - +0x2D0C | 65 64 | | ed - +0x2D0E | 00 | char | 0x00 (0) | string terminator + +0x2D10 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string + +0x2D14 | 64 65 70 72 65 63 61 74 | char[10] | deprecat | string literal + +0x2D1C | 65 64 | | ed + +0x2D1E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2D10 | 9C F6 FF FF | SOffset32 | 0xFFFFF69C (-2404) Loc: 0x3674 | offset to vtable - +0x2D14 | 00 00 00 | uint8_t[3] | ... | padding - +0x2D17 | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte) - +0x2D18 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x2D1C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2D20 | 8C F6 FF FF | SOffset32 | 0xFFFFF68C (-2420) Loc: 0x3694 | offset to vtable + +0x2D24 | 00 00 00 | uint8_t[3] | ... | padding + +0x2D27 | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte) + +0x2D28 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x2D2C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2D20 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x2D24 | 66 72 69 65 6E 64 6C 79 | char[8] | friendly | string literal - +0x2D2C | 00 | char | 0x00 (0) | string terminator - -padding: - +0x2D2D | 00 00 00 | uint8_t[3] | ... | padding + +0x2D30 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x2D34 | 66 72 69 65 6E 64 6C 79 | char[8] | friendly | string literal + +0x2D3C | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x2D30 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x2D32 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x2D34 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x2D36 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x2D38 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x2D3A | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x2D3C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2D3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2D40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2D42 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `required` (id: 7) - +0x2D44 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) - +0x2D46 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) + +0x2D3E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x2D40 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x2D42 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x2D44 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x2D46 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x2D48 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x2D4A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2D4C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2D4E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2D50 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated_readonly` (id: 7) (Bool) + +0x2D52 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `required` (id: 8) + +0x2D54 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 9) + +0x2D56 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 10) table (reflection.Field): - +0x2D48 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x2D30 | offset to vtable - +0x2D4C | 00 00 | uint8_t[2] | .. | padding - +0x2D4E | 01 | uint8_t | 0x01 (1) | table field `required` (Bool) - +0x2D4F | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) - +0x2D50 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) - +0x2D52 | 0A 00 | uint16_t | 0x000A (10) | table field `offset` (UShort) - +0x2D54 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: 0x2DB0 | offset to field `name` (string) - +0x2D58 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: 0x2DA4 | offset to field `type` (table) - +0x2D5C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2D60 | offset to field `attributes` (vector) + +0x2D58 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: 0x2D3E | offset to vtable + +0x2D5C | 00 00 | uint8_t[2] | .. | padding + +0x2D5E | 01 | uint8_t | 0x01 (1) | table field `required` (Bool) + +0x2D5F | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) + +0x2D60 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) + +0x2D62 | 0A 00 | uint16_t | 0x000A (10) | table field `offset` (UShort) + +0x2D64 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: 0x2DC0 | offset to field `name` (string) + +0x2D68 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: 0x2DB4 | offset to field `type` (table) + +0x2D6C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2D70 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2D60 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2D64 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2D88 | offset to table[0] - +0x2D68 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2D6C | offset to table[1] + +0x2D70 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2D74 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2D98 | offset to table[0] + +0x2D78 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2D7C | offset to table[1] table (reflection.KeyValue): - +0x2D6C | A4 F4 FF FF | SOffset32 | 0xFFFFF4A4 (-2908) Loc: 0x38C8 | offset to vtable - +0x2D70 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2D80 | offset to field `key` (string) - +0x2D74 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2D78 | offset to field `value` (string) + +0x2D7C | 94 F4 FF FF | SOffset32 | 0xFFFFF494 (-2924) Loc: 0x38E8 | offset to vtable + +0x2D80 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2D90 | offset to field `key` (string) + +0x2D84 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2D88 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2D78 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2D7C | 30 | char[1] | 0 | string literal - +0x2D7D | 00 | char | 0x00 (0) | string terminator + +0x2D88 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2D8C | 30 | char[1] | 0 | string literal + +0x2D8D | 00 | char | 0x00 (0) | string terminator padding: - +0x2D7E | 00 00 | uint8_t[2] | .. | padding + +0x2D8E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2D80 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x2D84 | 6B 65 79 | char[3] | key | string literal - +0x2D87 | 00 | char | 0x00 (0) | string terminator + +0x2D90 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x2D94 | 6B 65 79 | char[3] | key | string literal + +0x2D97 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2D88 | C0 F4 FF FF | SOffset32 | 0xFFFFF4C0 (-2880) Loc: 0x38C8 | offset to vtable - +0x2D8C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2D9C | offset to field `key` (string) - +0x2D90 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2D94 | offset to field `value` (string) + +0x2D98 | B0 F4 FF FF | SOffset32 | 0xFFFFF4B0 (-2896) Loc: 0x38E8 | offset to vtable + +0x2D9C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2DAC | offset to field `key` (string) + +0x2DA0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2DA4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2D94 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2D98 | 33 | char[1] | 3 | string literal - +0x2D99 | 00 | char | 0x00 (0) | string terminator + +0x2DA4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2DA8 | 33 | char[1] | 3 | string literal + +0x2DA9 | 00 | char | 0x00 (0) | string terminator padding: - +0x2D9A | 00 00 | uint8_t[2] | .. | padding + +0x2DAA | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2D9C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2DA0 | 69 64 | char[2] | id | string literal - +0x2DA2 | 00 | char | 0x00 (0) | string terminator + +0x2DAC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2DB0 | 69 64 | char[2] | id | string literal + +0x2DB2 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2DA4 | C8 F4 FF FF | SOffset32 | 0xFFFFF4C8 (-2872) Loc: 0x38DC | offset to vtable - +0x2DA8 | 00 00 00 | uint8_t[3] | ... | padding - +0x2DAB | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte) - +0x2DAC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2DB4 | B8 F4 FF FF | SOffset32 | 0xFFFFF4B8 (-2888) Loc: 0x38FC | offset to vtable + +0x2DB8 | 00 00 00 | uint8_t[3] | ... | padding + +0x2DBB | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte) + +0x2DBC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2DB0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2DB4 | 6E 61 6D 65 | char[4] | name | string literal - +0x2DB8 | 00 | char | 0x00 (0) | string terminator + +0x2DC0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2DC4 | 6E 61 6D 65 | char[4] | name | string literal + +0x2DC8 | 00 | char | 0x00 (0) | string terminator padding: - +0x2DB9 | 00 00 00 | uint8_t[3] | ... | padding + +0x2DC9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2DBC | A8 FF FF FF | SOffset32 | 0xFFFFFFA8 (-88) Loc: 0x2E14 | offset to vtable - +0x2DC0 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) - +0x2DC2 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) - +0x2DC4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x2E0C | offset to field `name` (string) - +0x2DC8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x2DFC | offset to field `type` (table) - +0x2DCC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x2DD8 | offset to field `attributes` (vector) - +0x2DD0 | 64 00 00 00 00 00 00 00 | int64_t | 0x0000000000000064 (100) | table field `default_integer` (Long) + +0x2DCC | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x2E2A | offset to vtable + +0x2DD0 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) + +0x2DD2 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) + +0x2DD4 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: 0x2E20 | offset to field `name` (string) + +0x2DD8 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x2E10 | offset to field `type` (table) + +0x2DDC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2DEC | offset to field `attributes` (vector) + +0x2DE0 | 64 00 00 00 00 00 00 00 | int64_t | 0x0000000000000064 (100) | table field `default_integer` (Long) + +0x2DE8 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.attributes): - +0x2DD8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2DDC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2DE0 | offset to table[0] + +0x2DEC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2DF0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2DF4 | offset to table[0] table (reflection.KeyValue): - +0x2DE0 | 18 F5 FF FF | SOffset32 | 0xFFFFF518 (-2792) Loc: 0x38C8 | offset to vtable - +0x2DE4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2DF4 | offset to field `key` (string) - +0x2DE8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2DEC | offset to field `value` (string) + +0x2DF4 | 0C F5 FF FF | SOffset32 | 0xFFFFF50C (-2804) Loc: 0x38E8 | offset to vtable + +0x2DF8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2E08 | offset to field `key` (string) + +0x2DFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2E00 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2DEC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2DF0 | 32 | char[1] | 2 | string literal - +0x2DF1 | 00 | char | 0x00 (0) | string terminator + +0x2E00 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2E04 | 32 | char[1] | 2 | string literal + +0x2E05 | 00 | char | 0x00 (0) | string terminator padding: - +0x2DF2 | 00 00 | uint8_t[2] | .. | padding + +0x2E06 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2DF4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2DF8 | 69 64 | char[2] | id | string literal - +0x2DFA | 00 | char | 0x00 (0) | string terminator + +0x2E08 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2E0C | 69 64 | char[2] | id | string literal + +0x2E0E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2DFC | 88 F7 FF FF | SOffset32 | 0xFFFFF788 (-2168) Loc: 0x3674 | offset to vtable - +0x2E00 | 00 00 00 | uint8_t[3] | ... | padding - +0x2E03 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) - +0x2E04 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) - +0x2E08 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2E10 | 7C F7 FF FF | SOffset32 | 0xFFFFF77C (-2180) Loc: 0x3694 | offset to vtable + +0x2E14 | 00 00 00 | uint8_t[3] | ... | padding + +0x2E17 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) + +0x2E18 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) + +0x2E1C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2E0C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2E10 | 68 70 | char[2] | hp | string literal - +0x2E12 | 00 | char | 0x00 (0) | string terminator + +0x2E20 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2E24 | 68 70 | char[2] | hp | string literal + +0x2E26 | 00 | char | 0x00 (0) | string terminator + +padding: + +0x2E27 | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x2E14 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x2E16 | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x2E18 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x2E1A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x2E1C | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x2E1E | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x2E20 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_integer` (id: 4) - +0x2E22 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2E24 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2E26 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2E28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2E2A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x2E2A | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x2E2C | 20 00 | uint16_t | 0x0020 (32) | size of referring table + +0x2E2E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x2E30 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x2E32 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x2E34 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x2E36 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_integer` (id: 4) + +0x2E38 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2E3A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2E3C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated_readonly` (id: 7) (Bool) + +0x2E3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 8) (Bool) + +0x2E40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 9) (Bool) + +0x2E42 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 10) table (reflection.Field): - +0x2E2C | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x2E14 | offset to vtable - +0x2E30 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x2E32 | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) - +0x2E34 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x2E7C | offset to field `name` (string) - +0x2E38 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x2E6C | offset to field `type` (table) - +0x2E3C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x2E48 | offset to field `attributes` (vector) - +0x2E40 | 96 00 00 00 00 00 00 00 | int64_t | 0x0000000000000096 (150) | table field `default_integer` (Long) + +0x2E44 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: 0x2E2A | offset to vtable + +0x2E48 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x2E4A | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) + +0x2E4C | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: 0x2E98 | offset to field `name` (string) + +0x2E50 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x2E88 | offset to field `type` (table) + +0x2E54 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2E64 | offset to field `attributes` (vector) + +0x2E58 | 96 00 00 00 00 00 00 00 | int64_t | 0x0000000000000096 (150) | table field `default_integer` (Long) + +0x2E60 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.attributes): - +0x2E48 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2E4C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2E50 | offset to table[0] + +0x2E64 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2E68 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2E6C | offset to table[0] table (reflection.KeyValue): - +0x2E50 | 88 F5 FF FF | SOffset32 | 0xFFFFF588 (-2680) Loc: 0x38C8 | offset to vtable - +0x2E54 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2E64 | offset to field `key` (string) - +0x2E58 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2E5C | offset to field `value` (string) + +0x2E6C | 84 F5 FF FF | SOffset32 | 0xFFFFF584 (-2684) Loc: 0x38E8 | offset to vtable + +0x2E70 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2E80 | offset to field `key` (string) + +0x2E74 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2E78 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2E5C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2E60 | 31 | char[1] | 1 | string literal - +0x2E61 | 00 | char | 0x00 (0) | string terminator + +0x2E78 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2E7C | 31 | char[1] | 1 | string literal + +0x2E7D | 00 | char | 0x00 (0) | string terminator padding: - +0x2E62 | 00 00 | uint8_t[2] | .. | padding + +0x2E7E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2E64 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2E68 | 69 64 | char[2] | id | string literal - +0x2E6A | 00 | char | 0x00 (0) | string terminator + +0x2E80 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2E84 | 69 64 | char[2] | id | string literal + +0x2E86 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2E6C | F8 F7 FF FF | SOffset32 | 0xFFFFF7F8 (-2056) Loc: 0x3674 | offset to vtable - +0x2E70 | 00 00 00 | uint8_t[3] | ... | padding - +0x2E73 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) - +0x2E74 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) - +0x2E78 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2E88 | F4 F7 FF FF | SOffset32 | 0xFFFFF7F4 (-2060) Loc: 0x3694 | offset to vtable + +0x2E8C | 00 00 00 | uint8_t[3] | ... | padding + +0x2E8F | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) + +0x2E90 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) + +0x2E94 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2E7C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2E80 | 6D 61 6E 61 | char[4] | mana | string literal - +0x2E84 | 00 | char | 0x00 (0) | string terminator - -padding: - +0x2E85 | 00 00 00 | uint8_t[3] | ... | padding + +0x2E98 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2E9C | 6D 61 6E 61 | char[4] | mana | string literal + +0x2EA0 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x2E88 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x2E8A | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x2E8C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x2E8E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x2E90 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x2E92 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x2E94 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2E96 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2E98 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2E9A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2E9C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2E9E | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) - +0x2EA0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) - +0x2EA2 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) + +0x2EA2 | 1E 00 | uint16_t | 0x001E (30) | size of this vtable + +0x2EA4 | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x2EA6 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x2EA8 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x2EAA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x2EAC | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x2EAE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2EB0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2EB2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2EB4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated_readonly` (id: 7) (Bool) + +0x2EB6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 8) (Bool) + +0x2EB8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 9) (Bool) + +0x2EBA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 10) + +0x2EBC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 11) (Vector) + +0x2EBE | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 12) table (reflection.Field): - +0x2EA4 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: 0x2E88 | offset to vtable - +0x2EA8 | 00 | uint8_t[1] | . | padding - +0x2EA9 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2EAA | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x2EAC | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x2EEC | offset to field `name` (string) - +0x2EB0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2EDC | offset to field `type` (table) - +0x2EB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2EB8 | offset to field `attributes` (vector) + +0x2EC0 | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: 0x2EA2 | offset to vtable + +0x2EC4 | 00 | uint8_t[1] | . | padding + +0x2EC5 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2EC6 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x2EC8 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x2F08 | offset to field `name` (string) + +0x2ECC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2EF8 | offset to field `type` (table) + +0x2ED0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2ED4 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2EB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2EBC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2EC0 | offset to table[0] + +0x2ED4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2ED8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2EDC | offset to table[0] table (reflection.KeyValue): - +0x2EC0 | F8 F5 FF FF | SOffset32 | 0xFFFFF5F8 (-2568) Loc: 0x38C8 | offset to vtable - +0x2EC4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2ED4 | offset to field `key` (string) - +0x2EC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2ECC | offset to field `value` (string) + +0x2EDC | F4 F5 FF FF | SOffset32 | 0xFFFFF5F4 (-2572) Loc: 0x38E8 | offset to vtable + +0x2EE0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2EF0 | offset to field `key` (string) + +0x2EE4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2EE8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2ECC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2ED0 | 30 | char[1] | 0 | string literal - +0x2ED1 | 00 | char | 0x00 (0) | string terminator + +0x2EE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2EEC | 30 | char[1] | 0 | string literal + +0x2EED | 00 | char | 0x00 (0) | string terminator padding: - +0x2ED2 | 00 00 | uint8_t[2] | .. | padding + +0x2EEE | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2ED4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2ED8 | 69 64 | char[2] | id | string literal - +0x2EDA | 00 | char | 0x00 (0) | string terminator + +0x2EF0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2EF4 | 69 64 | char[2] | id | string literal + +0x2EF6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2EDC | C4 F6 FF FF | SOffset32 | 0xFFFFF6C4 (-2364) Loc: 0x3818 | offset to vtable - +0x2EE0 | 00 00 00 | uint8_t[3] | ... | padding - +0x2EE3 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x2EE4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | table field `index` (Int) - +0x2EE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2EF8 | C0 F6 FF FF | SOffset32 | 0xFFFFF6C0 (-2368) Loc: 0x3838 | offset to vtable + +0x2EFC | 00 00 00 | uint8_t[3] | ... | padding + +0x2EFF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x2F00 | 09 00 00 00 | uint32_t | 0x00000009 (9) | table field `index` (Int) + +0x2F04 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2EEC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x2EF0 | 70 6F 73 | char[3] | pos | string literal - +0x2EF3 | 00 | char | 0x00 (0) | string terminator + +0x2F08 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x2F0C | 70 6F 73 | char[3] | pos | string literal + +0x2F0F | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x2EF4 | 5C F7 FF FF | SOffset32 | 0xFFFFF75C (-2212) Loc: 0x3798 | offset to vtable - +0x2EF8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x2F10 | offset to field `name` (string) - +0x2EFC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x2F08 | offset to field `fields` (vector) - +0x2F00 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x2F04 | E0 07 00 00 | UOffset32 | 0x000007E0 (2016) Loc: 0x36E4 | offset to field `declaration_file` (string) + +0x2F10 | 58 F7 FF FF | SOffset32 | 0xFFFFF758 (-2216) Loc: 0x37B8 | offset to vtable + +0x2F14 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x2F2C | offset to field `name` (string) + +0x2F18 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x2F24 | offset to field `fields` (vector) + +0x2F1C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x2F20 | E4 07 00 00 | UOffset32 | 0x000007E4 (2020) Loc: 0x3704 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x2F08 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2F0C | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x2F48 | offset to table[0] + +0x2F24 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2F28 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x2F64 | offset to table[0] string (reflection.Object.name): - +0x2F10 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string - +0x2F14 | 4D 79 47 61 6D 65 2E 45 | char[25] | MyGame.E | string literal - +0x2F1C | 78 61 6D 70 6C 65 2E 52 | | xample.R - +0x2F24 | 65 66 65 72 72 61 62 6C | | eferrabl - +0x2F2C | 65 | | e - +0x2F2D | 00 | char | 0x00 (0) | string terminator - -padding: - +0x2F2E | 00 00 | uint8_t[2] | .. | padding + +0x2F2C | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string + +0x2F30 | 4D 79 47 61 6D 65 2E 45 | char[25] | MyGame.E | string literal + +0x2F38 | 78 61 6D 70 6C 65 2E 52 | | xample.R + +0x2F40 | 65 66 65 72 72 61 62 6C | | eferrabl + +0x2F48 | 65 | | e + +0x2F49 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x2F30 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x2F32 | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x2F34 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x2F36 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x2F38 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x2F3A | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x2F3C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2F3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2F40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2F42 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2F44 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `key` (id: 8) - +0x2F46 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x2F4A | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x2F4C | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x2F4E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x2F50 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x2F52 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x2F54 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x2F56 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2F58 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2F5A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2F5C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated_readonly` (id: 7) (Bool) + +0x2F5E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 8) (Bool) + +0x2F60 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `key` (id: 9) + +0x2F62 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 10) table (reflection.Field): - +0x2F48 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x2F30 | offset to vtable - +0x2F4C | 00 | uint8_t[1] | . | padding - +0x2F4D | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) - +0x2F4E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x2F50 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: 0x2FBC | offset to field `name` (string) - +0x2F54 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: 0x2FAC | offset to field `type` (table) - +0x2F58 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2F5C | offset to field `attributes` (vector) + +0x2F64 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: 0x2F4A | offset to vtable + +0x2F68 | 00 | uint8_t[1] | . | padding + +0x2F69 | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) + +0x2F6A | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x2F6C | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: 0x2FD8 | offset to field `name` (string) + +0x2F70 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: 0x2FC8 | offset to field `type` (table) + +0x2F74 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2F78 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2F5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2F60 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2F84 | offset to table[0] - +0x2F64 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2F68 | offset to table[1] + +0x2F78 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2F7C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2FA0 | offset to table[0] + +0x2F80 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2F84 | offset to table[1] table (reflection.KeyValue): - +0x2F68 | A0 F6 FF FF | SOffset32 | 0xFFFFF6A0 (-2400) Loc: 0x38C8 | offset to vtable - +0x2F6C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2F7C | offset to field `key` (string) - +0x2F70 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2F74 | offset to field `value` (string) + +0x2F84 | 9C F6 FF FF | SOffset32 | 0xFFFFF69C (-2404) Loc: 0x38E8 | offset to vtable + +0x2F88 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2F98 | offset to field `key` (string) + +0x2F8C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2F90 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2F74 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2F78 | 30 | char[1] | 0 | string literal - +0x2F79 | 00 | char | 0x00 (0) | string terminator + +0x2F90 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2F94 | 30 | char[1] | 0 | string literal + +0x2F95 | 00 | char | 0x00 (0) | string terminator padding: - +0x2F7A | 00 00 | uint8_t[2] | .. | padding + +0x2F96 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2F7C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x2F80 | 6B 65 79 | char[3] | key | string literal - +0x2F83 | 00 | char | 0x00 (0) | string terminator + +0x2F98 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x2F9C | 6B 65 79 | char[3] | key | string literal + +0x2F9F | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2F84 | BC F6 FF FF | SOffset32 | 0xFFFFF6BC (-2372) Loc: 0x38C8 | offset to vtable - +0x2F88 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x2FA0 | offset to field `key` (string) - +0x2F8C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2F90 | offset to field `value` (string) + +0x2FA0 | B8 F6 FF FF | SOffset32 | 0xFFFFF6B8 (-2376) Loc: 0x38E8 | offset to vtable + +0x2FA4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x2FBC | offset to field `key` (string) + +0x2FA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2FAC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2F90 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x2F94 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x2F9C | 00 | char | 0x00 (0) | string terminator + +0x2FAC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x2FB0 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x2FB8 | 00 | char | 0x00 (0) | string terminator padding: - +0x2F9D | 00 00 00 | uint8_t[3] | ... | padding + +0x2FB9 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x2FA0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2FA4 | 68 61 73 68 | char[4] | hash | string literal - +0x2FA8 | 00 | char | 0x00 (0) | string terminator + +0x2FBC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2FC0 | 68 61 73 68 | char[4] | hash | string literal + +0x2FC4 | 00 | char | 0x00 (0) | string terminator padding: - +0x2FA9 | 00 00 00 | uint8_t[3] | ... | padding + +0x2FC5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2FAC | 38 F9 FF FF | SOffset32 | 0xFFFFF938 (-1736) Loc: 0x3674 | offset to vtable - +0x2FB0 | 00 00 00 | uint8_t[3] | ... | padding - +0x2FB3 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x2FB4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x2FB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2FC8 | 34 F9 FF FF | SOffset32 | 0xFFFFF934 (-1740) Loc: 0x3694 | offset to vtable + +0x2FCC | 00 00 00 | uint8_t[3] | ... | padding + +0x2FCF | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x2FD0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x2FD4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2FBC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2FC0 | 69 64 | char[2] | id | string literal - +0x2FC2 | 00 | char | 0x00 (0) | string terminator + +0x2FD8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2FDC | 69 64 | char[2] | id | string literal + +0x2FDE | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x2FC4 | 2C F8 FF FF | SOffset32 | 0xFFFFF82C (-2004) Loc: 0x3798 | offset to vtable - +0x2FC8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x2FE8 | offset to field `name` (string) - +0x2FCC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x2FD8 | offset to field `fields` (vector) - +0x2FD0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x2FD4 | 10 07 00 00 | UOffset32 | 0x00000710 (1808) Loc: 0x36E4 | offset to field `declaration_file` (string) + +0x2FE0 | 28 F8 FF FF | SOffset32 | 0xFFFFF828 (-2008) Loc: 0x37B8 | offset to vtable + +0x2FE4 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x3004 | offset to field `name` (string) + +0x2FE8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x2FF4 | offset to field `fields` (vector) + +0x2FEC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x2FF0 | 14 07 00 00 | UOffset32 | 0x00000714 (1812) Loc: 0x3704 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x2FD8 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x2FDC | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x3018 | offset to table[0] - +0x2FE0 | B8 00 00 00 | UOffset32 | 0x000000B8 (184) Loc: 0x3098 | offset to table[1] - +0x2FE4 | 8C 00 00 00 | UOffset32 | 0x0000008C (140) Loc: 0x3070 | offset to table[2] + +0x2FF4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x2FF8 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x3038 | offset to table[0] + +0x2FFC | BC 00 00 00 | UOffset32 | 0x000000BC (188) Loc: 0x30B8 | offset to table[1] + +0x3000 | 90 00 00 00 | UOffset32 | 0x00000090 (144) Loc: 0x3090 | offset to table[2] string (reflection.Object.name): - +0x2FE8 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x2FEC | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal - +0x2FF4 | 78 61 6D 70 6C 65 2E 53 | | xample.S - +0x2FFC | 74 61 74 | | tat - +0x2FFF | 00 | char | 0x00 (0) | string terminator + +0x3004 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x3008 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal + +0x3010 | 78 61 6D 70 6C 65 2E 53 | | xample.S + +0x3018 | 74 61 74 | | tat + +0x301B | 00 | char | 0x00 (0) | string terminator + +padding: + +0x301C | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x3000 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x3002 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x3004 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x3006 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x3008 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x300A | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x300C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x300E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x3010 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x3012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x3014 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) - +0x3016 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) + +0x301E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x3020 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x3022 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x3024 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x3026 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x3028 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x302A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x302C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x302E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x3030 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated_readonly` (id: 7) (Bool) + +0x3032 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 8) (Bool) + +0x3034 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 9) + +0x3036 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 10) table (reflection.Field): - +0x3018 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x3000 | offset to vtable - +0x301C | 00 00 00 | uint8_t[3] | ... | padding - +0x301F | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) - +0x3020 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) - +0x3022 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) - +0x3024 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x3064 | offset to field `name` (string) - +0x3028 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x3054 | offset to field `type` (table) - +0x302C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3030 | offset to field `attributes` (vector) + +0x3038 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: 0x301E | offset to vtable + +0x303C | 00 00 00 | uint8_t[3] | ... | padding + +0x303F | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) + +0x3040 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) + +0x3042 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) + +0x3044 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x3084 | offset to field `name` (string) + +0x3048 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x3074 | offset to field `type` (table) + +0x304C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3050 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x3030 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3034 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3038 | offset to table[0] + +0x3050 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3054 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3058 | offset to table[0] table (reflection.KeyValue): - +0x3038 | 70 F7 FF FF | SOffset32 | 0xFFFFF770 (-2192) Loc: 0x38C8 | offset to vtable - +0x303C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x304C | offset to field `key` (string) - +0x3040 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3044 | offset to field `value` (string) + +0x3058 | 70 F7 FF FF | SOffset32 | 0xFFFFF770 (-2192) Loc: 0x38E8 | offset to vtable + +0x305C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x306C | offset to field `key` (string) + +0x3060 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3064 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x3044 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3048 | 30 | char[1] | 0 | string literal - +0x3049 | 00 | char | 0x00 (0) | string terminator + +0x3064 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3068 | 30 | char[1] | 0 | string literal + +0x3069 | 00 | char | 0x00 (0) | string terminator padding: - +0x304A | 00 00 | uint8_t[2] | .. | padding + +0x306A | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x304C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x3050 | 6B 65 79 | char[3] | key | string literal - +0x3053 | 00 | char | 0x00 (0) | string terminator + +0x306C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x3070 | 6B 65 79 | char[3] | key | string literal + +0x3073 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x3054 | E0 F9 FF FF | SOffset32 | 0xFFFFF9E0 (-1568) Loc: 0x3674 | offset to vtable - +0x3058 | 00 00 00 | uint8_t[3] | ... | padding - +0x305B | 06 | uint8_t | 0x06 (6) | table field `base_type` (Byte) - +0x305C | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) - +0x3060 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3074 | E0 F9 FF FF | SOffset32 | 0xFFFFF9E0 (-1568) Loc: 0x3694 | offset to vtable + +0x3078 | 00 00 00 | uint8_t[3] | ... | padding + +0x307B | 06 | uint8_t | 0x06 (6) | table field `base_type` (Byte) + +0x307C | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) + +0x3080 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3064 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x3068 | 63 6F 75 6E 74 | char[5] | count | string literal - +0x306D | 00 | char | 0x00 (0) | string terminator + +0x3084 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x3088 | 63 6F 75 6E 74 | char[5] | count | string literal + +0x308D | 00 | char | 0x00 (0) | string terminator padding: - +0x306E | 00 00 | uint8_t[2] | .. | padding + +0x308E | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x3070 | F4 FB FF FF | SOffset32 | 0xFFFFFBF4 (-1036) Loc: 0x347C | offset to vtable - +0x3074 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x3076 | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) - +0x3078 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x3090 | offset to field `name` (string) - +0x307C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3080 | offset to field `type` (table) + +0x3090 | F4 FB FF FF | SOffset32 | 0xFFFFFBF4 (-1036) Loc: 0x349C | offset to vtable + +0x3094 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x3096 | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) + +0x3098 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x30B0 | offset to field `name` (string) + +0x309C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x30A0 | offset to field `type` (table) table (reflection.Type): - +0x3080 | 0C FA FF FF | SOffset32 | 0xFFFFFA0C (-1524) Loc: 0x3674 | offset to vtable - +0x3084 | 00 00 00 | uint8_t[3] | ... | padding - +0x3087 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) - +0x3088 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x308C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x30A0 | 0C FA FF FF | SOffset32 | 0xFFFFFA0C (-1524) Loc: 0x3694 | offset to vtable + +0x30A4 | 00 00 00 | uint8_t[3] | ... | padding + +0x30A7 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) + +0x30A8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x30AC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3090 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x3094 | 76 61 6C | char[3] | val | string literal - +0x3097 | 00 | char | 0x00 (0) | string terminator + +0x30B0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x30B4 | 76 61 6C | char[3] | val | string literal + +0x30B7 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x3098 | AC F8 FF FF | SOffset32 | 0xFFFFF8AC (-1876) Loc: 0x37EC | offset to vtable - +0x309C | 00 | uint8_t[1] | . | padding - +0x309D | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x309E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x30A0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x30B4 | offset to field `name` (string) - +0x30A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x30A8 | offset to field `type` (table) + +0x30B8 | AE F8 FF FF | SOffset32 | 0xFFFFF8AE (-1874) Loc: 0x380A | offset to vtable + +0x30BC | 00 | uint8_t[1] | . | padding + +0x30BD | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x30BE | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x30C0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x30D4 | offset to field `name` (string) + +0x30C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x30C8 | offset to field `type` (table) table (reflection.Type): - +0x30A8 | CC F7 FF FF | SOffset32 | 0xFFFFF7CC (-2100) Loc: 0x38DC | offset to vtable - +0x30AC | 00 00 00 | uint8_t[3] | ... | padding - +0x30AF | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte) - +0x30B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x30C8 | CC F7 FF FF | SOffset32 | 0xFFFFF7CC (-2100) Loc: 0x38FC | offset to vtable + +0x30CC | 00 00 00 | uint8_t[3] | ... | padding + +0x30CF | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte) + +0x30D0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x30B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x30B8 | 69 64 | char[2] | id | string literal - +0x30BA | 00 | char | 0x00 (0) | string terminator + +0x30D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x30D8 | 69 64 | char[2] | id | string literal + +0x30DA | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x30BC | 7C F8 FF FF | SOffset32 | 0xFFFFF87C (-1924) Loc: 0x3840 | offset to vtable - +0x30C0 | 00 00 00 | uint8_t[3] | ... | padding - +0x30C3 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x30C4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x30E0 | offset to field `name` (string) - +0x30C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x30D8 | offset to field `fields` (vector) - +0x30CC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) - +0x30D0 | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int) - +0x30D4 | 10 06 00 00 | UOffset32 | 0x00000610 (1552) Loc: 0x36E4 | offset to field `declaration_file` (string) + +0x30DC | 7C F8 FF FF | SOffset32 | 0xFFFFF87C (-1924) Loc: 0x3860 | offset to vtable + +0x30E0 | 00 00 00 | uint8_t[3] | ... | padding + +0x30E3 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x30E4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x3100 | offset to field `name` (string) + +0x30E8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x30F8 | offset to field `fields` (vector) + +0x30EC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) + +0x30F0 | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int) + +0x30F4 | 10 06 00 00 | UOffset32 | 0x00000610 (1552) Loc: 0x3704 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x30D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x30DC | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: 0x310C | offset to table[0] + +0x30F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x30FC | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: 0x312C | offset to table[0] string (reflection.Object.name): - +0x30E0 | 27 00 00 00 | uint32_t | 0x00000027 (39) | length of string - +0x30E4 | 4D 79 47 61 6D 65 2E 45 | char[39] | MyGame.E | string literal - +0x30EC | 78 61 6D 70 6C 65 2E 53 | | xample.S - +0x30F4 | 74 72 75 63 74 4F 66 53 | | tructOfS - +0x30FC | 74 72 75 63 74 73 4F 66 | | tructsOf - +0x3104 | 53 74 72 75 63 74 73 | | Structs - +0x310B | 00 | char | 0x00 (0) | string terminator + +0x3100 | 27 00 00 00 | uint32_t | 0x00000027 (39) | length of string + +0x3104 | 4D 79 47 61 6D 65 2E 45 | char[39] | MyGame.E | string literal + +0x310C | 78 61 6D 70 6C 65 2E 53 | | xample.S + +0x3114 | 74 72 75 63 74 4F 66 53 | | tructOfS + +0x311C | 74 72 75 63 74 73 4F 66 | | tructsOf + +0x3124 | 53 74 72 75 63 74 73 | | Structs + +0x312B | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x310C | 14 FF FF FF | SOffset32 | 0xFFFFFF14 (-236) Loc: 0x31F8 | offset to vtable - +0x3110 | 00 00 00 | uint8_t[3] | ... | padding - +0x3113 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x3114 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x312C | offset to field `name` (string) - +0x3118 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x311C | offset to field `type` (table) + +0x312C | 16 FF FF FF | SOffset32 | 0xFFFFFF16 (-234) Loc: 0x3216 | offset to vtable + +0x3130 | 00 00 00 | uint8_t[3] | ... | padding + +0x3133 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x3134 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x314C | offset to field `name` (string) + +0x3138 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x313C | offset to field `type` (table) table (reflection.Type): - +0x311C | 04 F9 FF FF | SOffset32 | 0xFFFFF904 (-1788) Loc: 0x3818 | offset to vtable - +0x3120 | 00 00 00 | uint8_t[3] | ... | padding - +0x3123 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x3124 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) - +0x3128 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x313C | 04 F9 FF FF | SOffset32 | 0xFFFFF904 (-1788) Loc: 0x3838 | offset to vtable + +0x3140 | 00 00 00 | uint8_t[3] | ... | padding + +0x3143 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x3144 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) + +0x3148 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x312C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3130 | 61 | char[1] | a | string literal - +0x3131 | 00 | char | 0x00 (0) | string terminator + +0x314C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3150 | 61 | char[1] | a | string literal + +0x3151 | 00 | char | 0x00 (0) | string terminator padding: - +0x3132 | 00 00 | uint8_t[2] | .. | padding + +0x3152 | 00 00 | uint8_t[2] | .. | padding table (reflection.Object): - +0x3134 | F4 F8 FF FF | SOffset32 | 0xFFFFF8F4 (-1804) Loc: 0x3840 | offset to vtable - +0x3138 | 00 00 00 | uint8_t[3] | ... | padding - +0x313B | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x313C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x3160 | offset to field `name` (string) - +0x3140 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3150 | offset to field `fields` (vector) - +0x3144 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) - +0x3148 | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int) - +0x314C | 98 05 00 00 | UOffset32 | 0x00000598 (1432) Loc: 0x36E4 | offset to field `declaration_file` (string) + +0x3154 | F4 F8 FF FF | SOffset32 | 0xFFFFF8F4 (-1804) Loc: 0x3860 | offset to vtable + +0x3158 | 00 00 00 | uint8_t[3] | ... | padding + +0x315B | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x315C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x3180 | offset to field `name` (string) + +0x3160 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3170 | offset to field `fields` (vector) + +0x3164 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) + +0x3168 | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int) + +0x316C | 98 05 00 00 | UOffset32 | 0x00000598 (1432) Loc: 0x3704 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x3150 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x3154 | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: 0x3214 | offset to table[0] - +0x3158 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: 0x31CC | offset to table[1] - +0x315C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: 0x3184 | offset to table[2] + +0x3170 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x3174 | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: 0x3234 | offset to table[0] + +0x3178 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: 0x31EC | offset to table[1] + +0x317C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: 0x31A4 | offset to table[2] string (reflection.Object.name): - +0x3160 | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string - +0x3164 | 4D 79 47 61 6D 65 2E 45 | char[30] | MyGame.E | string literal - +0x316C | 78 61 6D 70 6C 65 2E 53 | | xample.S - +0x3174 | 74 72 75 63 74 4F 66 53 | | tructOfS - +0x317C | 74 72 75 63 74 73 | | tructs - +0x3182 | 00 | char | 0x00 (0) | string terminator + +0x3180 | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string + +0x3184 | 4D 79 47 61 6D 65 2E 45 | char[30] | MyGame.E | string literal + +0x318C | 78 61 6D 70 6C 65 2E 53 | | xample.S + +0x3194 | 74 72 75 63 74 4F 66 53 | | tructOfS + +0x319C | 74 72 75 63 74 73 | | tructs + +0x31A2 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x3184 | D4 FF FF FF | SOffset32 | 0xFFFFFFD4 (-44) Loc: 0x31B0 | offset to vtable - +0x3188 | 00 00 00 | uint8_t[3] | ... | padding - +0x318B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x318C | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) - +0x318E | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) - +0x3190 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x31A8 | offset to field `name` (string) - +0x3194 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3198 | offset to field `type` (table) + +0x31A4 | D6 FF FF FF | SOffset32 | 0xFFFFFFD6 (-42) Loc: 0x31CE | offset to vtable + +0x31A8 | 00 00 00 | uint8_t[3] | ... | padding + +0x31AB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x31AC | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) + +0x31AE | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) + +0x31B0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x31C8 | offset to field `name` (string) + +0x31B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x31B8 | offset to field `type` (table) table (reflection.Type): - +0x3198 | 80 F9 FF FF | SOffset32 | 0xFFFFF980 (-1664) Loc: 0x3818 | offset to vtable - +0x319C | 00 00 00 | uint8_t[3] | ... | padding - +0x319F | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x31A0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x31A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x31B8 | 80 F9 FF FF | SOffset32 | 0xFFFFF980 (-1664) Loc: 0x3838 | offset to vtable + +0x31BC | 00 00 00 | uint8_t[3] | ... | padding + +0x31BF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x31C0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x31C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x31A8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x31AC | 63 | char[1] | c | string literal - +0x31AD | 00 | char | 0x00 (0) | string terminator - -padding: - +0x31AE | 00 00 | uint8_t[2] | .. | padding + +0x31C8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x31CC | 63 | char[1] | c | string literal + +0x31CD | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x31B0 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x31B2 | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x31B4 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x31B6 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x31B8 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x31BA | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x31BC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x31BE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x31C0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x31C2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x31C4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x31C6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x31C8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) - +0x31CA | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) + +0x31CE | 1E 00 | uint16_t | 0x001E (30) | size of this vtable + +0x31D0 | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x31D2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x31D4 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x31D6 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x31D8 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x31DA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x31DC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x31DE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x31E0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated_readonly` (id: 7) (Bool) + +0x31E2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 8) (Bool) + +0x31E4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 9) (Bool) + +0x31E6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 10) (Vector) + +0x31E8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 11) (Vector) + +0x31EA | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 12) table (reflection.Field): - +0x31CC | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: 0x31B0 | offset to vtable - +0x31D0 | 00 00 00 | uint8_t[3] | ... | padding - +0x31D3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x31D4 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x31D6 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) - +0x31D8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x31F0 | offset to field `name` (string) - +0x31DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x31E0 | offset to field `type` (table) + +0x31EC | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: 0x31CE | offset to vtable + +0x31F0 | 00 00 00 | uint8_t[3] | ... | padding + +0x31F3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x31F4 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x31F6 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) + +0x31F8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x3210 | offset to field `name` (string) + +0x31FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3200 | offset to field `type` (table) table (reflection.Type): - +0x31E0 | C8 F9 FF FF | SOffset32 | 0xFFFFF9C8 (-1592) Loc: 0x3818 | offset to vtable - +0x31E4 | 00 00 00 | uint8_t[3] | ... | padding - +0x31E7 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x31E8 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x31EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3200 | C8 F9 FF FF | SOffset32 | 0xFFFFF9C8 (-1592) Loc: 0x3838 | offset to vtable + +0x3204 | 00 00 00 | uint8_t[3] | ... | padding + +0x3207 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x3208 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x320C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x31F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x31F4 | 62 | char[1] | b | string literal - +0x31F5 | 00 | char | 0x00 (0) | string terminator - -padding: - +0x31F6 | 00 00 | uint8_t[2] | .. | padding + +0x3210 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3214 | 62 | char[1] | b | string literal + +0x3215 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x31F8 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x31FA | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x31FC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x31FE | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x3200 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x3202 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) (UShort) - +0x3204 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x3206 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x3208 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x320A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x320C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x320E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x3210 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) - +0x3212 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) + +0x3216 | 1E 00 | uint16_t | 0x001E (30) | size of this vtable + +0x3218 | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x321A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x321C | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x321E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x3220 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) (UShort) + +0x3222 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x3224 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x3226 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x3228 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated_readonly` (id: 7) (Bool) + +0x322A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 8) (Bool) + +0x322C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 9) (Bool) + +0x322E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 10) (Vector) + +0x3230 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 11) (Vector) + +0x3232 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 12) table (reflection.Field): - +0x3214 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: 0x31F8 | offset to vtable - +0x3218 | 00 00 00 | uint8_t[3] | ... | padding - +0x321B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x321C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x3234 | offset to field `name` (string) - +0x3220 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3224 | offset to field `type` (table) + +0x3234 | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: 0x3216 | offset to vtable + +0x3238 | 00 00 00 | uint8_t[3] | ... | padding + +0x323B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x323C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x3254 | offset to field `name` (string) + +0x3240 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3244 | offset to field `type` (table) table (reflection.Type): - +0x3224 | 0C FA FF FF | SOffset32 | 0xFFFFFA0C (-1524) Loc: 0x3818 | offset to vtable - +0x3228 | 00 00 00 | uint8_t[3] | ... | padding - +0x322B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x322C | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x3230 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3244 | 0C FA FF FF | SOffset32 | 0xFFFFFA0C (-1524) Loc: 0x3838 | offset to vtable + +0x3248 | 00 00 00 | uint8_t[3] | ... | padding + +0x324B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x324C | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x3250 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3234 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3238 | 61 | char[1] | a | string literal - +0x3239 | 00 | char | 0x00 (0) | string terminator + +0x3254 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3258 | 61 | char[1] | a | string literal + +0x3259 | 00 | char | 0x00 (0) | string terminator padding: - +0x323A | 00 00 | uint8_t[2] | .. | padding + +0x325A | 00 00 | uint8_t[2] | .. | padding table (reflection.Object): - +0x323C | FC F9 FF FF | SOffset32 | 0xFFFFF9FC (-1540) Loc: 0x3840 | offset to vtable - +0x3240 | 00 00 00 | uint8_t[3] | ... | padding - +0x3243 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x3244 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x3264 | offset to field `name` (string) - +0x3248 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3258 | offset to field `fields` (vector) - +0x324C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) - +0x3250 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `bytesize` (Int) - +0x3254 | 90 04 00 00 | UOffset32 | 0x00000490 (1168) Loc: 0x36E4 | offset to field `declaration_file` (string) + +0x325C | FC F9 FF FF | SOffset32 | 0xFFFFF9FC (-1540) Loc: 0x3860 | offset to vtable + +0x3260 | 00 00 00 | uint8_t[3] | ... | padding + +0x3263 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x3264 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x3284 | offset to field `name` (string) + +0x3268 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3278 | offset to field `fields` (vector) + +0x326C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) + +0x3270 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `bytesize` (Int) + +0x3274 | 90 04 00 00 | UOffset32 | 0x00000490 (1168) Loc: 0x3704 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x3258 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x325C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x3280 | offset to table[0] - +0x3260 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: 0x32C4 | offset to table[1] + +0x3278 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x327C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x32A0 | offset to table[0] + +0x3280 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: 0x32E4 | offset to table[1] string (reflection.Object.name): - +0x3264 | 16 00 00 00 | uint32_t | 0x00000016 (22) | length of string - +0x3268 | 4D 79 47 61 6D 65 2E 45 | char[22] | MyGame.E | string literal - +0x3270 | 78 61 6D 70 6C 65 2E 41 | | xample.A - +0x3278 | 62 69 6C 69 74 79 | | bility - +0x327E | 00 | char | 0x00 (0) | string terminator + +0x3284 | 16 00 00 00 | uint32_t | 0x00000016 (22) | length of string + +0x3288 | 4D 79 47 61 6D 65 2E 45 | char[22] | MyGame.E | string literal + +0x3290 | 78 61 6D 70 6C 65 2E 41 | | xample.A + +0x3298 | 62 69 6C 69 74 79 | | bility + +0x329E | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x3280 | 04 FE FF FF | SOffset32 | 0xFFFFFE04 (-508) Loc: 0x347C | offset to vtable - +0x3284 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x3286 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x3288 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x329C | offset to field `name` (string) - +0x328C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3290 | offset to field `type` (table) + +0x32A0 | 04 FE FF FF | SOffset32 | 0xFFFFFE04 (-508) Loc: 0x349C | offset to vtable + +0x32A4 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x32A6 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x32A8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x32BC | offset to field `name` (string) + +0x32AC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x32B0 | offset to field `type` (table) table (reflection.Type): - +0x3290 | B4 F9 FF FF | SOffset32 | 0xFFFFF9B4 (-1612) Loc: 0x38DC | offset to vtable - +0x3294 | 00 00 00 | uint8_t[3] | ... | padding - +0x3297 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) - +0x3298 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x32B0 | B4 F9 FF FF | SOffset32 | 0xFFFFF9B4 (-1612) Loc: 0x38FC | offset to vtable + +0x32B4 | 00 00 00 | uint8_t[3] | ... | padding + +0x32B7 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) + +0x32B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x329C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x32A0 | 64 69 73 74 61 6E 63 65 | char[8] | distance | string literal - +0x32A8 | 00 | char | 0x00 (0) | string terminator - -padding: - +0x32A9 | 00 00 00 | uint8_t[3] | ... | padding + +0x32BC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x32C0 | 64 69 73 74 61 6E 63 65 | char[8] | distance | string literal + +0x32C8 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x32AC | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x32AE | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x32B0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x32B2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x32B4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x32B6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) (UShort) - +0x32B8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x32BA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x32BC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x32BE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x32C0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) - +0x32C2 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x32CA | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x32CC | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x32CE | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x32D0 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x32D2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x32D4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) (UShort) + +0x32D6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x32D8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x32DA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x32DC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated_readonly` (id: 7) (Bool) + +0x32DE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 8) (Bool) + +0x32E0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 9) + +0x32E2 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 10) table (reflection.Field): - +0x32C4 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x32AC | offset to vtable - +0x32C8 | 00 00 00 | uint8_t[3] | ... | padding - +0x32CB | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) - +0x32CC | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x3308 | offset to field `name` (string) - +0x32D0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x32FC | offset to field `type` (table) - +0x32D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x32D8 | offset to field `attributes` (vector) + +0x32E4 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: 0x32CA | offset to vtable + +0x32E8 | 00 00 00 | uint8_t[3] | ... | padding + +0x32EB | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) + +0x32EC | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x3328 | offset to field `name` (string) + +0x32F0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x331C | offset to field `type` (table) + +0x32F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x32F8 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x32D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x32DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x32E0 | offset to table[0] + +0x32F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x32FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3300 | offset to table[0] table (reflection.KeyValue): - +0x32E0 | 18 FA FF FF | SOffset32 | 0xFFFFFA18 (-1512) Loc: 0x38C8 | offset to vtable - +0x32E4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x32F4 | offset to field `key` (string) - +0x32E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x32EC | offset to field `value` (string) + +0x3300 | 18 FA FF FF | SOffset32 | 0xFFFFFA18 (-1512) Loc: 0x38E8 | offset to vtable + +0x3304 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3314 | offset to field `key` (string) + +0x3308 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x330C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x32EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x32F0 | 30 | char[1] | 0 | string literal - +0x32F1 | 00 | char | 0x00 (0) | string terminator + +0x330C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3310 | 30 | char[1] | 0 | string literal + +0x3311 | 00 | char | 0x00 (0) | string terminator padding: - +0x32F2 | 00 00 | uint8_t[2] | .. | padding + +0x3312 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x32F4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x32F8 | 6B 65 79 | char[3] | key | string literal - +0x32FB | 00 | char | 0x00 (0) | string terminator + +0x3314 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x3318 | 6B 65 79 | char[3] | key | string literal + +0x331B | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x32FC | 20 FA FF FF | SOffset32 | 0xFFFFFA20 (-1504) Loc: 0x38DC | offset to vtable - +0x3300 | 00 00 00 | uint8_t[3] | ... | padding - +0x3303 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) - +0x3304 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x331C | 20 FA FF FF | SOffset32 | 0xFFFFFA20 (-1504) Loc: 0x38FC | offset to vtable + +0x3320 | 00 00 00 | uint8_t[3] | ... | padding + +0x3323 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) + +0x3324 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3308 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x330C | 69 64 | char[2] | id | string literal - +0x330E | 00 | char | 0x00 (0) | string terminator + +0x3328 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x332C | 69 64 | char[2] | id | string literal + +0x332E | 00 | char | 0x00 (0) | string terminator vtable (reflection.Object): - +0x3310 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable - +0x3312 | 20 00 | uint16_t | 0x0020 (32) | size of referring table - +0x3314 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x3316 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1) - +0x3318 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2) - +0x331A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3) - +0x331C | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4) - +0x331E | 18 00 | VOffset16 | 0x0018 (24) | offset to field `attributes` (id: 5) - +0x3320 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) - +0x3322 | 1C 00 | VOffset16 | 0x001C (28) | offset to field `declaration_file` (id: 7) + +0x3330 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x3332 | 20 00 | uint16_t | 0x0020 (32) | size of referring table + +0x3334 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x3336 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1) + +0x3338 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2) + +0x333A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3) + +0x333C | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4) + +0x333E | 18 00 | VOffset16 | 0x0018 (24) | offset to field `attributes` (id: 5) + +0x3340 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) + +0x3342 | 1C 00 | VOffset16 | 0x001C (28) | offset to field `declaration_file` (id: 7) table (reflection.Object): - +0x3324 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: 0x3310 | offset to vtable - +0x3328 | 00 00 00 | uint8_t[3] | ... | padding - +0x332B | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x332C | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: 0x338C | offset to field `name` (string) - +0x3330 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x3370 | offset to field `fields` (vector) - +0x3334 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `minalign` (Int) - +0x3338 | 20 00 00 00 | uint32_t | 0x00000020 (32) | table field `bytesize` (Int) - +0x333C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x3344 | offset to field `attributes` (vector) - +0x3340 | A4 03 00 00 | UOffset32 | 0x000003A4 (932) Loc: 0x36E4 | offset to field `declaration_file` (string) + +0x3344 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: 0x3330 | offset to vtable + +0x3348 | 00 00 00 | uint8_t[3] | ... | padding + +0x334B | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x334C | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: 0x33AC | offset to field `name` (string) + +0x3350 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x3390 | offset to field `fields` (vector) + +0x3354 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `minalign` (Int) + +0x3358 | 20 00 00 00 | uint32_t | 0x00000020 (32) | table field `bytesize` (Int) + +0x335C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x3364 | offset to field `attributes` (vector) + +0x3360 | A4 03 00 00 | UOffset32 | 0x000003A4 (932) Loc: 0x3704 | offset to field `declaration_file` (string) vector (reflection.Object.attributes): - +0x3344 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3348 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x334C | offset to table[0] + +0x3364 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3368 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x336C | offset to table[0] table (reflection.KeyValue): - +0x334C | 84 FA FF FF | SOffset32 | 0xFFFFFA84 (-1404) Loc: 0x38C8 | offset to vtable - +0x3350 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3360 | offset to field `key` (string) - +0x3354 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3358 | offset to field `value` (string) + +0x336C | 84 FA FF FF | SOffset32 | 0xFFFFFA84 (-1404) Loc: 0x38E8 | offset to vtable + +0x3370 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3380 | offset to field `key` (string) + +0x3374 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3378 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x3358 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x335C | 38 | char[1] | 8 | string literal - +0x335D | 00 | char | 0x00 (0) | string terminator + +0x3378 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x337C | 38 | char[1] | 8 | string literal + +0x337D | 00 | char | 0x00 (0) | string terminator padding: - +0x335E | 00 00 | uint8_t[2] | .. | padding + +0x337E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x3360 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x3364 | 66 6F 72 63 65 5F 61 6C | char[11] | force_al | string literal - +0x336C | 69 67 6E | | ign - +0x336F | 00 | char | 0x00 (0) | string terminator + +0x3380 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x3384 | 66 6F 72 63 65 5F 61 6C | char[11] | force_al | string literal + +0x338C | 69 67 6E | | ign + +0x338F | 00 | char | 0x00 (0) | string terminator vector (reflection.Object.fields): - +0x3370 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of vector (# items) - +0x3374 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: 0x3428 | offset to table[0] - +0x3378 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: 0x33F4 | offset to table[1] - +0x337C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x33C4 | offset to table[2] - +0x3380 | 2C 01 00 00 | UOffset32 | 0x0000012C (300) Loc: 0x34AC | offset to table[3] - +0x3384 | 04 01 00 00 | UOffset32 | 0x00000104 (260) Loc: 0x3488 | offset to table[4] - +0x3388 | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: 0x3454 | offset to table[5] + +0x3390 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of vector (# items) + +0x3394 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: 0x3448 | offset to table[0] + +0x3398 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: 0x3414 | offset to table[1] + +0x339C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x33E4 | offset to table[2] + +0x33A0 | 2C 01 00 00 | UOffset32 | 0x0000012C (300) Loc: 0x34CC | offset to table[3] + +0x33A4 | 04 01 00 00 | UOffset32 | 0x00000104 (260) Loc: 0x34A8 | offset to table[4] + +0x33A8 | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: 0x3474 | offset to table[5] string (reflection.Object.name): - +0x338C | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x3390 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal - +0x3398 | 78 61 6D 70 6C 65 2E 56 | | xample.V - +0x33A0 | 65 63 33 | | ec3 - +0x33A3 | 00 | char | 0x00 (0) | string terminator - -padding: - +0x33A4 | 00 00 | uint8_t[2] | .. | padding + +0x33AC | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x33B0 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal + +0x33B8 | 78 61 6D 70 6C 65 2E 56 | | xample.V + +0x33C0 | 65 63 33 | | ec3 + +0x33C3 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x33A6 | 1E 00 | uint16_t | 0x001E (30) | size of this vtable - +0x33A8 | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x33AA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x33AC | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x33AE | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2) - +0x33B0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3) - +0x33B2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x33B4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x33B6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x33B8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x33BA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x33BC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x33BE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) - +0x33C0 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) - +0x33C2 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 12) + +0x33C4 | 20 00 | uint16_t | 0x0020 (32) | size of this vtable + +0x33C6 | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x33C8 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x33CA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x33CC | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2) + +0x33CE | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3) + +0x33D0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x33D2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x33D4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x33D6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated_readonly` (id: 7) (Bool) + +0x33D8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 8) (Bool) + +0x33DA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 9) (Bool) + +0x33DC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 10) (Vector) + +0x33DE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 11) (Vector) + +0x33E0 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 12) + +0x33E2 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 13) table (reflection.Field): - +0x33C4 | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: 0x33A6 | offset to vtable - +0x33C8 | 00 | uint8_t[1] | . | padding - +0x33C9 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x33CA | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) - +0x33CC | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) - +0x33CE | 02 00 | uint16_t | 0x0002 (2) | table field `padding` (UShort) - +0x33D0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x33E8 | offset to field `name` (string) - +0x33D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x33D8 | offset to field `type` (table) + +0x33E4 | 20 00 00 00 | SOffset32 | 0x00000020 (32) Loc: 0x33C4 | offset to vtable + +0x33E8 | 00 | uint8_t[1] | . | padding + +0x33E9 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x33EA | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) + +0x33EC | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) + +0x33EE | 02 00 | uint16_t | 0x0002 (2) | table field `padding` (UShort) + +0x33F0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x3408 | offset to field `name` (string) + +0x33F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x33F8 | offset to field `type` (table) table (reflection.Type): - +0x33D8 | C0 FB FF FF | SOffset32 | 0xFFFFFBC0 (-1088) Loc: 0x3818 | offset to vtable - +0x33DC | 00 00 00 | uint8_t[3] | ... | padding - +0x33DF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x33E0 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x33E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x33F8 | C0 FB FF FF | SOffset32 | 0xFFFFFBC0 (-1088) Loc: 0x3838 | offset to vtable + +0x33FC | 00 00 00 | uint8_t[3] | ... | padding + +0x33FF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x3400 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x3404 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x33E8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x33EC | 74 65 73 74 33 | char[5] | test3 | string literal - +0x33F1 | 00 | char | 0x00 (0) | string terminator + +0x3408 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x340C | 74 65 73 74 33 | char[5] | test3 | string literal + +0x3411 | 00 | char | 0x00 (0) | string terminator padding: - +0x33F2 | 00 00 | uint8_t[2] | .. | padding + +0x3412 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x33F4 | D6 FD FF FF | SOffset32 | 0xFFFFFDD6 (-554) Loc: 0x361E | offset to vtable - +0x33F8 | 00 00 | uint8_t[2] | .. | padding - +0x33FA | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) - +0x33FC | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) - +0x33FE | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort) - +0x3400 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x341C | offset to field `name` (string) - +0x3404 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3408 | offset to field `type` (table) + +0x3414 | D8 FD FF FF | SOffset32 | 0xFFFFFDD8 (-552) Loc: 0x363C | offset to vtable + +0x3418 | 00 00 | uint8_t[2] | .. | padding + +0x341A | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) + +0x341C | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) + +0x341E | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort) + +0x3420 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x343C | offset to field `name` (string) + +0x3424 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3428 | offset to field `type` (table) table (reflection.Type): - +0x3408 | 5C FE FF FF | SOffset32 | 0xFFFFFE5C (-420) Loc: 0x35AC | offset to vtable - +0x340C | 00 00 00 | uint8_t[3] | ... | padding - +0x340F | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) - +0x3410 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x3414 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x3418 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3428 | 5C FE FF FF | SOffset32 | 0xFFFFFE5C (-420) Loc: 0x35CC | offset to vtable + +0x342C | 00 00 00 | uint8_t[3] | ... | padding + +0x342F | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) + +0x3430 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x3434 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x3438 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x341C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x3420 | 74 65 73 74 32 | char[5] | test2 | string literal - +0x3425 | 00 | char | 0x00 (0) | string terminator + +0x343C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x3440 | 74 65 73 74 32 | char[5] | test2 | string literal + +0x3445 | 00 | char | 0x00 (0) | string terminator padding: - +0x3426 | 00 00 | uint8_t[2] | .. | padding + +0x3446 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x3428 | AC FF FF FF | SOffset32 | 0xFFFFFFAC (-84) Loc: 0x347C | offset to vtable - +0x342C | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) - +0x342E | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) - +0x3430 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x3448 | offset to field `name` (string) - +0x3434 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3438 | offset to field `type` (table) + +0x3448 | AC FF FF FF | SOffset32 | 0xFFFFFFAC (-84) Loc: 0x349C | offset to vtable + +0x344C | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) + +0x344E | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) + +0x3450 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x3468 | offset to field `name` (string) + +0x3454 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3458 | offset to field `type` (table) table (reflection.Type): - +0x3438 | C4 FD FF FF | SOffset32 | 0xFFFFFDC4 (-572) Loc: 0x3674 | offset to vtable - +0x343C | 00 00 00 | uint8_t[3] | ... | padding - +0x343F | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) - +0x3440 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x3444 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3458 | C4 FD FF FF | SOffset32 | 0xFFFFFDC4 (-572) Loc: 0x3694 | offset to vtable + +0x345C | 00 00 00 | uint8_t[3] | ... | padding + +0x345F | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) + +0x3460 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x3464 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3448 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x344C | 74 65 73 74 31 | char[5] | test1 | string literal - +0x3451 | 00 | char | 0x00 (0) | string terminator + +0x3468 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x346C | 74 65 73 74 31 | char[5] | test1 | string literal + +0x3471 | 00 | char | 0x00 (0) | string terminator padding: - +0x3452 | 00 00 | uint8_t[2] | .. | padding + +0x3472 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x3454 | 36 FE FF FF | SOffset32 | 0xFFFFFE36 (-458) Loc: 0x361E | offset to vtable - +0x3458 | 00 00 | uint8_t[2] | .. | padding - +0x345A | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) - +0x345C | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) - +0x345E | 04 00 | uint16_t | 0x0004 (4) | table field `padding` (UShort) - +0x3460 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x3474 | offset to field `name` (string) - +0x3464 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3468 | offset to field `type` (table) + +0x3474 | 38 FE FF FF | SOffset32 | 0xFFFFFE38 (-456) Loc: 0x363C | offset to vtable + +0x3478 | 00 00 | uint8_t[2] | .. | padding + +0x347A | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) + +0x347C | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) + +0x347E | 04 00 | uint16_t | 0x0004 (4) | table field `padding` (UShort) + +0x3480 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x3494 | offset to field `name` (string) + +0x3484 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3488 | offset to field `type` (table) table (reflection.Type): - +0x3468 | 8C FB FF FF | SOffset32 | 0xFFFFFB8C (-1140) Loc: 0x38DC | offset to vtable - +0x346C | 00 00 00 | uint8_t[3] | ... | padding - +0x346F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x3470 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3488 | 8C FB FF FF | SOffset32 | 0xFFFFFB8C (-1140) Loc: 0x38FC | offset to vtable + +0x348C | 00 00 00 | uint8_t[3] | ... | padding + +0x348F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x3490 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3474 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3478 | 7A | char[1] | z | string literal - +0x3479 | 00 | char | 0x00 (0) | string terminator + +0x3494 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3498 | 7A | char[1] | z | string literal + +0x3499 | 00 | char | 0x00 (0) | string terminator padding: - +0x347A | 00 00 | uint8_t[2] | .. | padding + +0x349A | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x347C | 0C 00 | uint16_t | 0x000C (12) | size of this vtable - +0x347E | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x3480 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x3482 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x3484 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x3486 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - -table (reflection.Field): - +0x3488 | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: 0x347C | offset to vtable - +0x348C | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x348E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x3490 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x34A4 | offset to field `name` (string) - +0x3494 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3498 | offset to field `type` (table) - -table (reflection.Type): - +0x3498 | BC FB FF FF | SOffset32 | 0xFFFFFBBC (-1092) Loc: 0x38DC | offset to vtable - +0x349C | 00 00 00 | uint8_t[3] | ... | padding - +0x349F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x34A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) - -string (reflection.Field.name): - +0x34A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x34A8 | 79 | char[1] | y | string literal - +0x34A9 | 00 | char | 0x00 (0) | string terminator - -padding: - +0x34AA | 00 00 | uint8_t[2] | .. | padding + +0x349C | 0C 00 | uint16_t | 0x000C (12) | size of this vtable + +0x349E | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x34A0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x34A2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x34A4 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x34A6 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) table (reflection.Field): - +0x34AC | E4 FB FF FF | SOffset32 | 0xFFFFFBE4 (-1052) Loc: 0x38C8 | offset to vtable + +0x34A8 | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: 0x349C | offset to vtable + +0x34AC | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x34AE | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) +0x34B0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x34C4 | offset to field `name` (string) +0x34B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x34B8 | offset to field `type` (table) table (reflection.Type): - +0x34B8 | DC FB FF FF | SOffset32 | 0xFFFFFBDC (-1060) Loc: 0x38DC | offset to vtable + +0x34B8 | BC FB FF FF | SOffset32 | 0xFFFFFBBC (-1092) Loc: 0x38FC | offset to vtable +0x34BC | 00 00 00 | uint8_t[3] | ... | padding +0x34BF | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) +0x34C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): +0x34C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x34C8 | 78 | char[1] | x | string literal + +0x34C8 | 79 | char[1] | y | string literal +0x34C9 | 00 | char | 0x00 (0) | string terminator padding: +0x34CA | 00 00 | uint8_t[2] | .. | padding +table (reflection.Field): + +0x34CC | E4 FB FF FF | SOffset32 | 0xFFFFFBE4 (-1052) Loc: 0x38E8 | offset to vtable + +0x34D0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x34E4 | offset to field `name` (string) + +0x34D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x34D8 | offset to field `type` (table) + +table (reflection.Type): + +0x34D8 | DC FB FF FF | SOffset32 | 0xFFFFFBDC (-1060) Loc: 0x38FC | offset to vtable + +0x34DC | 00 00 00 | uint8_t[3] | ... | padding + +0x34DF | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x34E0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +string (reflection.Field.name): + +0x34E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x34E8 | 78 | char[1] | x | string literal + +0x34E9 | 00 | char | 0x00 (0) | string terminator + +padding: + +0x34EA | 00 00 | uint8_t[2] | .. | padding + vtable (reflection.Object): - +0x34CC | 14 00 | uint16_t | 0x0014 (20) | size of this vtable - +0x34CE | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x34D0 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x34D2 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1) - +0x34D4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) (Bool) - +0x34D6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3) - +0x34D8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) (Int) - +0x34DA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 5) - +0x34DC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) - +0x34DE | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 7) + +0x34EC | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x34EE | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x34F0 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x34F2 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1) + +0x34F4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) (Bool) + +0x34F6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3) + +0x34F8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) (Int) + +0x34FA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 5) + +0x34FC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) + +0x34FE | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 7) table (reflection.Object): - +0x34E0 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: 0x34CC | offset to vtable - +0x34E4 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: 0x3554 | offset to field `name` (string) - +0x34E8 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: 0x354C | offset to field `fields` (vector) - +0x34EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x34F0 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x34F8 | offset to field `attributes` (vector) - +0x34F4 | F0 01 00 00 | UOffset32 | 0x000001F0 (496) Loc: 0x36E4 | offset to field `declaration_file` (string) + +0x3500 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: 0x34EC | offset to vtable + +0x3504 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: 0x3574 | offset to field `name` (string) + +0x3508 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: 0x356C | offset to field `fields` (vector) + +0x350C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x3510 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x3518 | offset to field `attributes` (vector) + +0x3514 | F0 01 00 00 | UOffset32 | 0x000001F0 (496) Loc: 0x3704 | offset to field `declaration_file` (string) vector (reflection.Object.attributes): - +0x34F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x34FC | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: 0x3524 | offset to table[0] - +0x3500 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3504 | offset to table[1] + +0x3518 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x351C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: 0x3544 | offset to table[0] + +0x3520 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3524 | offset to table[1] table (reflection.KeyValue): - +0x3504 | 3C FC FF FF | SOffset32 | 0xFFFFFC3C (-964) Loc: 0x38C8 | offset to vtable - +0x3508 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3518 | offset to field `key` (string) - +0x350C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3510 | offset to field `value` (string) + +0x3524 | 3C FC FF FF | SOffset32 | 0xFFFFFC3C (-964) Loc: 0x38E8 | offset to vtable + +0x3528 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3538 | offset to field `key` (string) + +0x352C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3530 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x3510 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3514 | 30 | char[1] | 0 | string literal - +0x3515 | 00 | char | 0x00 (0) | string terminator + +0x3530 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3534 | 30 | char[1] | 0 | string literal + +0x3535 | 00 | char | 0x00 (0) | string terminator padding: - +0x3516 | 00 00 | uint8_t[2] | .. | padding + +0x3536 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x3518 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x351C | 70 72 69 76 61 74 65 | char[7] | private | string literal - +0x3523 | 00 | char | 0x00 (0) | string terminator + +0x3538 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x353C | 70 72 69 76 61 74 65 | char[7] | private | string literal + +0x3543 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x3524 | 5C FC FF FF | SOffset32 | 0xFFFFFC5C (-932) Loc: 0x38C8 | offset to vtable - +0x3528 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3538 | offset to field `key` (string) - +0x352C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3530 | offset to field `value` (string) + +0x3544 | 5C FC FF FF | SOffset32 | 0xFFFFFC5C (-932) Loc: 0x38E8 | offset to vtable + +0x3548 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3558 | offset to field `key` (string) + +0x354C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3550 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x3530 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3534 | 30 | char[1] | 0 | string literal - +0x3535 | 00 | char | 0x00 (0) | string terminator + +0x3550 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3554 | 30 | char[1] | 0 | string literal + +0x3555 | 00 | char | 0x00 (0) | string terminator padding: - +0x3536 | 00 00 | uint8_t[2] | .. | padding + +0x3556 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x3538 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string - +0x353C | 63 73 68 61 72 70 5F 70 | char[14] | csharp_p | string literal - +0x3544 | 61 72 74 69 61 6C | | artial - +0x354A | 00 | char | 0x00 (0) | string terminator + +0x3558 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string + +0x355C | 63 73 68 61 72 70 5F 70 | char[14] | csharp_p | string literal + +0x3564 | 61 72 74 69 61 6C | | artial + +0x356A | 00 | char | 0x00 (0) | string terminator vector (reflection.Object.fields): - +0x354C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3550 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x3590 | offset to table[0] + +0x356C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3570 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x35B0 | offset to table[0] string (reflection.Object.name): - +0x3554 | 26 00 00 00 | uint32_t | 0x00000026 (38) | length of string - +0x3558 | 4D 79 47 61 6D 65 2E 45 | char[38] | MyGame.E | string literal - +0x3560 | 78 61 6D 70 6C 65 2E 54 | | xample.T - +0x3568 | 65 73 74 53 69 6D 70 6C | | estSimpl - +0x3570 | 65 54 61 62 6C 65 57 69 | | eTableWi - +0x3578 | 74 68 45 6E 75 6D | | thEnum - +0x357E | 00 | char | 0x00 (0) | string terminator + +0x3574 | 26 00 00 00 | uint32_t | 0x00000026 (38) | length of string + +0x3578 | 4D 79 47 61 6D 65 2E 45 | char[38] | MyGame.E | string literal + +0x3580 | 78 61 6D 70 6C 65 2E 54 | | xample.T + +0x3588 | 65 73 74 53 69 6D 70 6C | | estSimpl + +0x3590 | 65 54 61 62 6C 65 57 69 | | eTableWi + +0x3598 | 74 68 45 6E 75 6D | | thEnum + +0x359E | 00 | char | 0x00 (0) | string terminator padding: - +0x357F | 00 00 00 | uint8_t[3] | ... | padding + +0x359F | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x3582 | 0E 00 | uint16_t | 0x000E (14) | size of this vtable - +0x3584 | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x3586 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x3588 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x358A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x358C | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x358E | 10 00 | VOffset16 | 0x0010 (16) | offset to field `default_integer` (id: 4) + +0x35A2 | 0E 00 | uint16_t | 0x000E (14) | size of this vtable + +0x35A4 | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x35A6 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x35A8 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x35AA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x35AC | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x35AE | 10 00 | VOffset16 | 0x0010 (16) | offset to field `default_integer` (id: 4) table (reflection.Field): - +0x3590 | 0E 00 00 00 | SOffset32 | 0x0000000E (14) Loc: 0x3582 | offset to vtable - +0x3594 | 00 00 | uint8_t[2] | .. | padding - +0x3596 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x3598 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x35D0 | offset to field `name` (string) - +0x359C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x35BC | offset to field `type` (table) - +0x35A0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `default_integer` (Long) - +0x35A8 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x35B0 | 0E 00 00 00 | SOffset32 | 0x0000000E (14) Loc: 0x35A2 | offset to vtable + +0x35B4 | 00 00 | uint8_t[2] | .. | padding + +0x35B6 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x35B8 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x35F0 | offset to field `name` (string) + +0x35BC | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x35DC | offset to field `type` (table) + +0x35C0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `default_integer` (Long) + +0x35C8 | 00 00 00 00 | uint8_t[4] | .... | padding vtable (reflection.Type): - +0x35AC | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x35AE | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x35B0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) - +0x35B2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) - +0x35B4 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) - +0x35B6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x35B8 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `base_size` (id: 4) - +0x35BA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `element_size` (id: 5) + +0x35CC | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x35CE | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x35D0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) + +0x35D2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) + +0x35D4 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) + +0x35D6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x35D8 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `base_size` (id: 4) + +0x35DA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x35BC | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: 0x35AC | offset to vtable - +0x35C0 | 00 00 00 | uint8_t[3] | ... | padding - +0x35C3 | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) - +0x35C4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x35C8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x35CC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x35DC | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: 0x35CC | offset to vtable + +0x35E0 | 00 00 00 | uint8_t[3] | ... | padding + +0x35E3 | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) + +0x35E4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x35E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x35EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x35D0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x35D4 | 63 6F 6C 6F 72 | char[5] | color | string literal - +0x35D9 | 00 | char | 0x00 (0) | string terminator + +0x35F0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x35F4 | 63 6F 6C 6F 72 | char[5] | color | string literal + +0x35F9 | 00 | char | 0x00 (0) | string terminator padding: - +0x35DA | 00 00 | uint8_t[2] | .. | padding + +0x35FA | 00 00 | uint8_t[2] | .. | padding table (reflection.Object): - +0x35DC | 9C FD FF FF | SOffset32 | 0xFFFFFD9C (-612) Loc: 0x3840 | offset to vtable - +0x35E0 | 00 00 00 | uint8_t[3] | ... | padding - +0x35E3 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x35E4 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x3604 | offset to field `name` (string) - +0x35E8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x35F8 | offset to field `fields` (vector) - +0x35EC | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `minalign` (Int) - +0x35F0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int) - +0x35F4 | F0 00 00 00 | UOffset32 | 0x000000F0 (240) Loc: 0x36E4 | offset to field `declaration_file` (string) + +0x35FC | 9C FD FF FF | SOffset32 | 0xFFFFFD9C (-612) Loc: 0x3860 | offset to vtable + +0x3600 | 00 00 00 | uint8_t[3] | ... | padding + +0x3603 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x3604 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x3624 | offset to field `name` (string) + +0x3608 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3618 | offset to field `fields` (vector) + +0x360C | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `minalign` (Int) + +0x3610 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int) + +0x3614 | F0 00 00 00 | UOffset32 | 0x000000F0 (240) Loc: 0x3704 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x35F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x35FC | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: 0x3668 | offset to table[0] - +0x3600 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x363C | offset to table[1] + +0x3618 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x361C | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: 0x3688 | offset to table[0] + +0x3620 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x365C | offset to table[1] string (reflection.Object.name): - +0x3604 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x3608 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal - +0x3610 | 78 61 6D 70 6C 65 2E 54 | | xample.T - +0x3618 | 65 73 74 | | est - +0x361B | 00 | char | 0x00 (0) | string terminator - -padding: - +0x361C | 00 00 | uint8_t[2] | .. | padding + +0x3624 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x3628 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal + +0x3630 | 78 61 6D 70 6C 65 2E 54 | | xample.T + +0x3638 | 65 73 74 | | est + +0x363B | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x361E | 1E 00 | uint16_t | 0x001E (30) | size of this vtable - +0x3620 | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x3622 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x3624 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x3626 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2) - +0x3628 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3) - +0x362A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x362C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x362E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x3630 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x3632 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x3634 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x3636 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) - +0x3638 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `optional` (id: 11) (Bool) - +0x363A | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 12) + +0x363C | 20 00 | uint16_t | 0x0020 (32) | size of this vtable + +0x363E | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x3640 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x3642 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x3644 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2) + +0x3646 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3) + +0x3648 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x364A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x364C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x364E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated_readonly` (id: 7) (Bool) + +0x3650 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 8) (Bool) + +0x3652 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 9) (Bool) + +0x3654 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 10) (Vector) + +0x3656 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 11) (Vector) + +0x3658 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `optional` (id: 12) (Bool) + +0x365A | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 13) table (reflection.Field): - +0x363C | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: 0x361E | offset to vtable - +0x3640 | 00 00 | uint8_t[2] | .. | padding - +0x3642 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x3644 | 02 00 | uint16_t | 0x0002 (2) | table field `offset` (UShort) - +0x3646 | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort) - +0x3648 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x3660 | offset to field `name` (string) - +0x364C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3650 | offset to field `type` (table) + +0x365C | 20 00 00 00 | SOffset32 | 0x00000020 (32) Loc: 0x363C | offset to vtable + +0x3660 | 00 00 | uint8_t[2] | .. | padding + +0x3662 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x3664 | 02 00 | uint16_t | 0x0002 (2) | table field `offset` (UShort) + +0x3666 | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort) + +0x3668 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x3680 | offset to field `name` (string) + +0x366C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3670 | offset to field `type` (table) table (reflection.Type): - +0x3650 | DC FF FF FF | SOffset32 | 0xFFFFFFDC (-36) Loc: 0x3674 | offset to vtable - +0x3654 | 00 00 00 | uint8_t[3] | ... | padding - +0x3657 | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) - +0x3658 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x365C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3670 | DC FF FF FF | SOffset32 | 0xFFFFFFDC (-36) Loc: 0x3694 | offset to vtable + +0x3674 | 00 00 00 | uint8_t[3] | ... | padding + +0x3677 | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) + +0x3678 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x367C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3660 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3664 | 62 | char[1] | b | string literal - +0x3665 | 00 | char | 0x00 (0) | string terminator + +0x3680 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3684 | 62 | char[1] | b | string literal + +0x3685 | 00 | char | 0x00 (0) | string terminator padding: - +0x3666 | 00 00 | uint8_t[2] | .. | padding + +0x3686 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x3668 | A0 FD FF FF | SOffset32 | 0xFFFFFDA0 (-608) Loc: 0x38C8 | offset to vtable - +0x366C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: 0x3694 | offset to field `name` (string) - +0x3670 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x3684 | offset to field `type` (table) + +0x3688 | A0 FD FF FF | SOffset32 | 0xFFFFFDA0 (-608) Loc: 0x38E8 | offset to vtable + +0x368C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: 0x36B4 | offset to field `name` (string) + +0x3690 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x36A4 | offset to field `type` (table) vtable (reflection.Type): - +0x3674 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x3676 | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x3678 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) - +0x367A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) - +0x367C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) - +0x367E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x3680 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `base_size` (id: 4) - +0x3682 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) + +0x3694 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x3696 | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x3698 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) + +0x369A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) + +0x369C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) + +0x369E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x36A0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `base_size` (id: 4) + +0x36A2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x3684 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: 0x3674 | offset to vtable - +0x3688 | 00 00 00 | uint8_t[3] | ... | padding - +0x368B | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) - +0x368C | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) - +0x3690 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x36A4 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: 0x3694 | offset to vtable + +0x36A8 | 00 00 00 | uint8_t[3] | ... | padding + +0x36AB | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) + +0x36AC | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) + +0x36B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3694 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3698 | 61 | char[1] | a | string literal - +0x3699 | 00 | char | 0x00 (0) | string terminator + +0x36B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x36B8 | 61 | char[1] | a | string literal + +0x36B9 | 00 | char | 0x00 (0) | string terminator padding: - +0x369A | 00 00 | uint8_t[2] | .. | padding + +0x36BA | 00 00 | uint8_t[2] | .. | padding table (reflection.Object): - +0x369C | 04 FF FF FF | SOffset32 | 0xFFFFFF04 (-252) Loc: 0x3798 | offset to vtable - +0x36A0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x36B4 | offset to field `name` (string) - +0x36A4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x36B0 | offset to field `fields` (vector) - +0x36A8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x36AC | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x36E4 | offset to field `declaration_file` (string) + +0x36BC | 04 FF FF FF | SOffset32 | 0xFFFFFF04 (-252) Loc: 0x37B8 | offset to vtable + +0x36C0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x36D4 | offset to field `name` (string) + +0x36C4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x36D0 | offset to field `fields` (vector) + +0x36C8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x36CC | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x3704 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x36B0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x36D0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) string (reflection.Object.name): - +0x36B4 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string - +0x36B8 | 4D 79 47 61 6D 65 2E 45 | char[23] | MyGame.E | string literal - +0x36C0 | 78 61 6D 70 6C 65 32 2E | | xample2. - +0x36C8 | 4D 6F 6E 73 74 65 72 | | Monster - +0x36CF | 00 | char | 0x00 (0) | string terminator + +0x36D4 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string + +0x36D8 | 4D 79 47 61 6D 65 2E 45 | char[23] | MyGame.E | string literal + +0x36E0 | 78 61 6D 70 6C 65 32 2E | | xample2. + +0x36E8 | 4D 6F 6E 73 74 65 72 | | Monster + +0x36EF | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x36D0 | 38 FF FF FF | SOffset32 | 0xFFFFFF38 (-200) Loc: 0x3798 | offset to vtable - +0x36D4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x3700 | offset to field `name` (string) - +0x36D8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x36FC | offset to field `fields` (vector) - +0x36DC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x36E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x36E4 | offset to field `declaration_file` (string) + +0x36F0 | 38 FF FF FF | SOffset32 | 0xFFFFFF38 (-200) Loc: 0x37B8 | offset to vtable + +0x36F4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x3720 | offset to field `name` (string) + +0x36F8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x371C | offset to field `fields` (vector) + +0x36FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x3700 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3704 | offset to field `declaration_file` (string) string (reflection.Object.declaration_file): - +0x36E4 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string - +0x36E8 | 2F 2F 6D 6F 6E 73 74 65 | char[18] | //monste | string literal - +0x36F0 | 72 5F 74 65 73 74 2E 66 | | r_test.f - +0x36F8 | 62 73 | | bs - +0x36FA | 00 | char | 0x00 (0) | string terminator + +0x3704 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string + +0x3708 | 2F 2F 6D 6F 6E 73 74 65 | char[18] | //monste | string literal + +0x3710 | 72 5F 74 65 73 74 2E 66 | | r_test.f + +0x3718 | 62 73 | | bs + +0x371A | 00 | char | 0x00 (0) | string terminator vector (reflection.Object.fields): - +0x36FC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x371C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) string (reflection.Object.name): - +0x3700 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string - +0x3704 | 4D 79 47 61 6D 65 2E 49 | char[24] | MyGame.I | string literal - +0x370C | 6E 50 61 72 65 6E 74 4E | | nParentN - +0x3714 | 61 6D 65 73 70 61 63 65 | | amespace - +0x371C | 00 | char | 0x00 (0) | string terminator + +0x3720 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string + +0x3724 | 4D 79 47 61 6D 65 2E 49 | char[24] | MyGame.I | string literal + +0x372C | 6E 50 61 72 65 6E 74 4E | | nParentN + +0x3734 | 61 6D 65 73 70 61 63 65 | | amespace + +0x373C | 00 | char | 0x00 (0) | string terminator padding: - +0x371D | 00 00 00 | uint8_t[3] | ... | padding + +0x373D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Object): - +0x3720 | 88 FF FF FF | SOffset32 | 0xFFFFFF88 (-120) Loc: 0x3798 | offset to vtable - +0x3724 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x3764 | offset to field `name` (string) - +0x3728 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x375C | offset to field `fields` (vector) - +0x372C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x3730 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3734 | offset to field `declaration_file` (string) + +0x3740 | 88 FF FF FF | SOffset32 | 0xFFFFFF88 (-120) Loc: 0x37B8 | offset to vtable + +0x3744 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x3784 | offset to field `name` (string) + +0x3748 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x377C | offset to field `fields` (vector) + +0x374C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x3750 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3754 | offset to field `declaration_file` (string) string (reflection.Object.declaration_file): - +0x3734 | 20 00 00 00 | uint32_t | 0x00000020 (32) | length of string - +0x3738 | 2F 2F 69 6E 63 6C 75 64 | char[32] | //includ | string literal - +0x3740 | 65 5F 74 65 73 74 2F 69 | | e_test/i - +0x3748 | 6E 63 6C 75 64 65 5F 74 | | nclude_t - +0x3750 | 65 73 74 31 2E 66 62 73 | | est1.fbs - +0x3758 | 00 | char | 0x00 (0) | string terminator + +0x3754 | 20 00 00 00 | uint32_t | 0x00000020 (32) | length of string + +0x3758 | 2F 2F 69 6E 63 6C 75 64 | char[32] | //includ | string literal + +0x3760 | 65 5F 74 65 73 74 2F 69 | | e_test/i + +0x3768 | 6E 63 6C 75 64 65 5F 74 | | nclude_t + +0x3770 | 65 73 74 31 2E 66 62 73 | | est1.fbs + +0x3778 | 00 | char | 0x00 (0) | string terminator padding: - +0x3759 | 00 00 00 | uint8_t[3] | ... | padding + +0x3779 | 00 00 00 | uint8_t[3] | ... | padding vector (reflection.Object.fields): - +0x375C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3760 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3770 | offset to table[0] + +0x377C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3780 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3790 | offset to table[0] string (reflection.Object.name): - +0x3764 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x3768 | 54 61 62 6C 65 41 | char[6] | TableA | string literal - +0x376E | 00 | char | 0x00 (0) | string terminator + +0x3784 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x3788 | 54 61 62 6C 65 41 | char[6] | TableA | string literal + +0x378E | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x3770 | 84 FF FF FF | SOffset32 | 0xFFFFFF84 (-124) Loc: 0x37EC | offset to vtable - +0x3774 | 00 | uint8_t[1] | . | padding - +0x3775 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x3776 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x3778 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x3790 | offset to field `name` (string) - +0x377C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3780 | offset to field `type` (table) + +0x3790 | 86 FF FF FF | SOffset32 | 0xFFFFFF86 (-122) Loc: 0x380A | offset to vtable + +0x3794 | 00 | uint8_t[1] | . | padding + +0x3795 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x3796 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x3798 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x37B0 | offset to field `name` (string) + +0x379C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x37A0 | offset to field `type` (table) table (reflection.Type): - +0x3780 | 68 FF FF FF | SOffset32 | 0xFFFFFF68 (-152) Loc: 0x3818 | offset to vtable - +0x3784 | 00 00 00 | uint8_t[3] | ... | padding - +0x3787 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x3788 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | table field `index` (Int) - +0x378C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x37A0 | 68 FF FF FF | SOffset32 | 0xFFFFFF68 (-152) Loc: 0x3838 | offset to vtable + +0x37A4 | 00 00 00 | uint8_t[3] | ... | padding + +0x37A7 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x37A8 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | table field `index` (Int) + +0x37AC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3790 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3794 | 62 | char[1] | b | string literal - +0x3795 | 00 | char | 0x00 (0) | string terminator + +0x37B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x37B4 | 62 | char[1] | b | string literal + +0x37B5 | 00 | char | 0x00 (0) | string terminator padding: - +0x3796 | 00 00 | uint8_t[2] | .. | padding + +0x37B6 | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Object): - +0x3798 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable - +0x379A | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x379C | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x379E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1) - +0x37A0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) (Bool) - +0x37A2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3) - +0x37A4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) (Int) - +0x37A6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) (Vector) - +0x37A8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) - +0x37AA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `declaration_file` (id: 7) + +0x37B8 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x37BA | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x37BC | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x37BE | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1) + +0x37C0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) (Bool) + +0x37C2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3) + +0x37C4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) (Int) + +0x37C6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) (Vector) + +0x37C8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) + +0x37CA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `declaration_file` (id: 7) table (reflection.Object): - +0x37AC | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: 0x3798 | offset to vtable - +0x37B0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x37C8 | offset to field `name` (string) - +0x37B4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x37C0 | offset to field `fields` (vector) - +0x37B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x37BC | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: 0x3870 | offset to field `declaration_file` (string) + +0x37CC | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: 0x37B8 | offset to vtable + +0x37D0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x37E8 | offset to field `name` (string) + +0x37D4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x37E0 | offset to field `fields` (vector) + +0x37D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x37DC | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: 0x3890 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x37C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x37C4 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x3808 | offset to table[0] + +0x37E0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x37E4 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x3828 | offset to table[0] string (reflection.Object.name): - +0x37C8 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string - +0x37CC | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal - +0x37D4 | 74 68 65 72 4E 61 6D 65 | | therName - +0x37DC | 53 70 61 63 65 2E 54 61 | | Space.Ta - +0x37E4 | 62 6C 65 42 | | bleB - +0x37E8 | 00 | char | 0x00 (0) | string terminator - -padding: - +0x37E9 | 00 00 00 | uint8_t[3] | ... | padding + +0x37E8 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string + +0x37EC | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal + +0x37F4 | 74 68 65 72 4E 61 6D 65 | | therName + +0x37FC | 53 70 61 63 65 2E 54 61 | | Space.Ta + +0x3804 | 62 6C 65 42 | | bleB + +0x3808 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x37EC | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x37EE | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x37F0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x37F2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x37F4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x37F6 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x37F8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x37FA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x37FC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x37FE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x3800 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x3802 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x3804 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) - +0x3806 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) + +0x380A | 1E 00 | uint16_t | 0x001E (30) | size of this vtable + +0x380C | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x380E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x3810 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x3812 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x3814 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x3816 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x3818 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x381A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x381C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated_readonly` (id: 7) (Bool) + +0x381E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 8) (Bool) + +0x3820 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 9) (Bool) + +0x3822 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 10) (Vector) + +0x3824 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 11) (Vector) + +0x3826 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 12) table (reflection.Field): - +0x3808 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: 0x37EC | offset to vtable - +0x380C | 00 | uint8_t[1] | . | padding - +0x380D | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x380E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x3810 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: 0x3838 | offset to field `name` (string) - +0x3814 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x3828 | offset to field `type` (table) + +0x3828 | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: 0x380A | offset to vtable + +0x382C | 00 | uint8_t[1] | . | padding + +0x382D | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x382E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x3830 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: 0x3858 | offset to field `name` (string) + +0x3834 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x3848 | offset to field `type` (table) vtable (reflection.Type): - +0x3818 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x381A | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x381C | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) - +0x381E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) - +0x3820 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) - +0x3822 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x3824 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) - +0x3826 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) + +0x3838 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x383A | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x383C | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) + +0x383E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) + +0x3840 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) + +0x3842 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x3844 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) + +0x3846 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x3828 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: 0x3818 | offset to vtable - +0x382C | 00 00 00 | uint8_t[3] | ... | padding - +0x382F | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x3830 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | table field `index` (Int) - +0x3834 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3848 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: 0x3838 | offset to vtable + +0x384C | 00 00 00 | uint8_t[3] | ... | padding + +0x384F | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x3850 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | table field `index` (Int) + +0x3854 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3838 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x383C | 61 | char[1] | a | string literal - +0x383D | 00 | char | 0x00 (0) | string terminator + +0x3858 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x385C | 61 | char[1] | a | string literal + +0x385D | 00 | char | 0x00 (0) | string terminator padding: - +0x383E | 00 00 | uint8_t[2] | .. | padding + +0x385E | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Object): - +0x3840 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable - +0x3842 | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x3844 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x3846 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1) - +0x3848 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2) - +0x384A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3) - +0x384C | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4) - +0x384E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) (Vector) - +0x3850 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) - +0x3852 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `declaration_file` (id: 7) + +0x3860 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x3862 | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x3864 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x3866 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1) + +0x3868 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2) + +0x386A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3) + +0x386C | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4) + +0x386E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) (Vector) + +0x3870 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) + +0x3872 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `declaration_file` (id: 7) table (reflection.Object): - +0x3854 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: 0x3840 | offset to vtable - +0x3858 | 00 00 00 | uint8_t[3] | ... | padding - +0x385B | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x385C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x38A4 | offset to field `name` (string) - +0x3860 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x389C | offset to field `fields` (vector) - +0x3864 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) - +0x3868 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int) - +0x386C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3870 | offset to field `declaration_file` (string) + +0x3874 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: 0x3860 | offset to vtable + +0x3878 | 00 00 00 | uint8_t[3] | ... | padding + +0x387B | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x387C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x38C4 | offset to field `name` (string) + +0x3880 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x38BC | offset to field `fields` (vector) + +0x3884 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) + +0x3888 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int) + +0x388C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3890 | offset to field `declaration_file` (string) string (reflection.Object.declaration_file): - +0x3870 | 24 00 00 00 | uint32_t | 0x00000024 (36) | length of string - +0x3874 | 2F 2F 69 6E 63 6C 75 64 | char[36] | //includ | string literal - +0x387C | 65 5F 74 65 73 74 2F 73 | | e_test/s - +0x3884 | 75 62 2F 69 6E 63 6C 75 | | ub/inclu - +0x388C | 64 65 5F 74 65 73 74 32 | | de_test2 - +0x3894 | 2E 66 62 73 | | .fbs - +0x3898 | 00 | char | 0x00 (0) | string terminator + +0x3890 | 24 00 00 00 | uint32_t | 0x00000024 (36) | length of string + +0x3894 | 2F 2F 69 6E 63 6C 75 64 | char[36] | //includ | string literal + +0x389C | 65 5F 74 65 73 74 2F 73 | | e_test/s + +0x38A4 | 75 62 2F 69 6E 63 6C 75 | | ub/inclu + +0x38AC | 64 65 5F 74 65 73 74 32 | | de_test2 + +0x38B4 | 2E 66 62 73 | | .fbs + +0x38B8 | 00 | char | 0x00 (0) | string terminator padding: - +0x3899 | 00 00 00 | uint8_t[3] | ... | padding + +0x38B9 | 00 00 00 | uint8_t[3] | ... | padding vector (reflection.Object.fields): - +0x389C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x38A0 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: 0x38D0 | offset to table[0] + +0x38BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x38C0 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: 0x38F0 | offset to table[0] string (reflection.Object.name): - +0x38A4 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string - +0x38A8 | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal - +0x38B0 | 74 68 65 72 4E 61 6D 65 | | therName - +0x38B8 | 53 70 61 63 65 2E 55 6E | | Space.Un - +0x38C0 | 75 73 65 64 | | used - +0x38C4 | 00 | char | 0x00 (0) | string terminator + +0x38C4 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string + +0x38C8 | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal + +0x38D0 | 74 68 65 72 4E 61 6D 65 | | therName + +0x38D8 | 53 70 61 63 65 2E 55 6E | | Space.Un + +0x38E0 | 75 73 65 64 | | used + +0x38E4 | 00 | char | 0x00 (0) | string terminator padding: - +0x38C5 | 00 00 00 | uint8_t[3] | ... | padding + +0x38E5 | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.KeyValue, reflection.Field, reflection.SchemaFile): - +0x38C8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable - +0x38CA | 0C 00 | uint16_t | 0x000C (12) | size of referring table - +0x38CC | 04 00 | VOffset16 | 0x0004 (4) | offset to field `key` (id: 0) - +0x38CE | 08 00 | VOffset16 | 0x0008 (8) | offset to field `value` (id: 1) + +0x38E8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable + +0x38EA | 0C 00 | uint16_t | 0x000C (12) | size of referring table + +0x38EC | 04 00 | VOffset16 | 0x0004 (4) | offset to field `key` (id: 0) + +0x38EE | 08 00 | VOffset16 | 0x0008 (8) | offset to field `value` (id: 1) table (reflection.Field): - +0x38D0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x38C8 | offset to vtable - +0x38D4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x38F8 | offset to field `name` (string) - +0x38D8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x38EC | offset to field `type` (table) + +0x38F0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x38E8 | offset to vtable + +0x38F4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x3918 | offset to field `name` (string) + +0x38F8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x390C | offset to field `type` (table) vtable (reflection.Type): - +0x38DC | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x38DE | 0C 00 | uint16_t | 0x000C (12) | size of referring table - +0x38E0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) - +0x38E2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) - +0x38E4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) - +0x38E6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x38E8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) - +0x38EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) + +0x38FC | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x38FE | 0C 00 | uint16_t | 0x000C (12) | size of referring table + +0x3900 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) + +0x3902 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) + +0x3904 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) + +0x3906 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x3908 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) + +0x390A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x38EC | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: 0x38DC | offset to vtable - +0x38F0 | 00 00 00 | uint8_t[3] | ... | padding - +0x38F3 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) - +0x38F4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x390C | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: 0x38FC | offset to vtable + +0x3910 | 00 00 00 | uint8_t[3] | ... | padding + +0x3913 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) + +0x3914 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x38F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x38FC | 61 | char[1] | a | string literal - +0x38FD | 00 | char | 0x00 (0) | string terminator + +0x3918 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x391C | 61 | char[1] | a | string literal + +0x391D | 00 | char | 0x00 (0) | string terminator padding: - +0x38FE | 00 00 | uint8_t[2] | .. | padding + +0x391E | 00 00 | uint8_t[2] | .. | padding diff --git a/tests/monster_test.bfbs b/tests/monster_test.bfbs index cbf6335dbbd10d9ae97d1e1cf22dd26d79694450..5e1bed5866bc21e5ca599f602d4ee94d2b8e44a5 100644 GIT binary patch delta 3567 zcmZ8j3s6+o89wK-3%jx_yX?ZUdv>`C7g%6{Wnp=>TG5g!Rwg*HQ_N^mTS!d?95raQ zW2)(xR%dF9{WViNn30T~F&)ilH684rgB{Y?PIPP=qtd8oX`>c=Bx;D&-hStG))T<(2ff58fOg<|@$WdP>ut4c`sBs}Y-}bw zSNVA==X0H%Feo8NetYQ+{>@Cs6zs%Fy2|Hx2g(^+lKw;s959#{(M%4Y-Z{IHs_MzW`TpUVBq89UWd^z=*XYqY>#XL*7c8c;-ziZzFBV-h$x_z`gRa35=q2H$t zo4XO_lZSVvshqdcdzM+;M)xclUvSuK-N?-ou<#7+p7v8`=iha`3CuQt6m*7a(!ZT` z{DQ7aL^|^^Hx^QSEA^#&8g4w^nZ|M^cQ#y>)YDTWzYPCclysn$zaf0Ru9kRI^ih)gG(yzG1jUO8tQl&?e+|gRr3Oa>Z zCh3;bBb&#$4p`1oC$T+LXs_l&wAelinciieyKH|NV-}dZ954vzMacIA7<&l${XWLV zoQ(D4qB&I1AQ(HOV*Kwz@GAiYLB?X(+b;uU20x4{20XL^?~pYzd%A1m&~(ODqE}3S z7$klq*KqWqlrB(ZnT#Ej+TdoR7dRK%4zL&aMZm?ff%h;r0G>g78?#^ma6$Zcf_|mc zjCS=yV`nO3-S{@an;99PvmyPhbauL`JQ$<<)AM;Hc{2pxLp2#8Wq6!k$S4Z*BCOys zN=kZITNy8!m)l_k^<{+l-{@3^#w~OQtPZj}Ldx%MQmvzichgdb;2UVYBb=6hOV=CN zTKcLZPZ>Q&ryV|J>>S;203CIT*~7rs zvX!g}X2bxp2jb7fMwxL0ojFkN$>!F8P?{~x&7o+f2r~4DAN61ZeX3DY*ft&qb{M19 z%pl)Ft1<;2q-~ki{B1gsDU`bx=u)PSm(iC%)l#`jLw_%Hg?JCGcM1EFe;C!5fe^_KmD|HK?DFw8y61}U3MzDK{5#a_jz~7Q;7zpC9kKuV-@0DO+F2`@>uH(A zWlgwaqU)fVLFOzCN=vd--cHR~f`3RIz`RLYff=HAfa#(4fjLdrvqT_x@#!GMFt-yy zXrsLBFn^v}vQ>E5l`SyBwq~noKmU)ehuQOVD=RB7GL;{rFu|WgSF%Gqo2;G)I2$}d zS$T=x@)q%5(QBTtGIWVf=aee9FVS&-DYD0NA|Q_Dg!wvJnj@4Qmkr_p>dOf$*Df2x z?h%7{2Nin5`~_O*m1FjGui*W(+Z$3wM(9VLQVhg9*qA|izB;TI`yzY=ZS{o^ibFo3 zT)QIWDvqlLEvQ5oRnsCu{KvFLXs~3L5c~|iC+cAKxTr=l^88`su*ENw&Hps4+E3eo zI#0*&?xpMgaN2`Ax?aE*&@X&>$l=U@P`XDAQWzKrDcjnF9{%eAGA{AQ(kQ=)zWIdu zpl6hh<#{l&lN)}DJQ{~pt>nxX$ZvVR$G-M{+|L}0n0PGrUZ3J;(nx8e*YmZscfZhe z538bQBi?}N#uVzLYz65`eh8Ii)k6F$6xCF8?LtlP{St2}9yc^w$)UOFpl0KLqGMVp zP=LlvPJb2d7l~9h5-$j$hD-29qol|Cag+)Bqcs!ddx*(@z({Q%UARjaN}g zp&SOyg+kdoMmG!dxu3QchWH=o5H=k2*Fu58HxAOh9qU-p z(X}3Du^&U;fl9*pm-M)C=%+zAFCqRB?JW7aGVOmfT#_p-EfEl#RjTn3VHWRoGVHCV1kdFVS#%^Io^AzIjospd8F&KC0qat z4uplthN`2%8Xt#Ql`dRb<7Fz%G?%G-0Tq@#1Nk{mIfM&}@wg%Xjk1swRi*_dFbtCI zlqY4vPB)F0Y5Zs8EDvy>)RdNrP)Ppfa*gkxu5y7}?ACHIyFcFU_C!OiSk~1cmA$RU zZ&M4fPBb8n*2yP9Z=)-awSgX$d!Bi^p`Wy~Y+rfe%6nL{yf-JMJ!$C8w6H?(yVO(_HwxKU^M=~x7(y&o7M@ry0*bzIkk(lO) zs`TEc73Dsq|GqKWV{{pi~YNwW{Ac#zQ(jLbN zC^P^L78^PX`A=w7-Fj#l Ouk!+pppmuyi~j@F>o^4f delta 3532 zcmZuz4NO$o6~6Z|1B1-K3^T+0ycymwZ-!x*8D@|lA(f~tMw@CXsZBA_DlJ+~)cU)v z3A?(fnHz|Ml-Mu{7(UIsAq-Qg*X=4 z$-)(Wff9U`Z5zap z>X2$}jyL#cX-HaSyi>#27P930jBliaIZ56{r}4f-H*>ykyn@4bP}J~Ket^0SNq&kh z8)Ez#Jv3}Ko`CWCXsz)Fyp#Hk%lHV58<$C@PbirC6U!DTA*>*jAEBeUs${xOf6l#a zTn{rpINzJ6aGs(+nU?W5JvFI(=Xp>5VQw6ShEsHM(XVY?|IoB%Fq<)iph2oD_>uF@ zElm?Z0rN5kCPMrc>Mw9Lnr^387BP2rrR%Q13UdU%F#lWdSNlITEuWQuD$U(N(*>@& zE}$mxWn?bJ?jR@-oWjxDY8JCW(B!e=EawO{nO&Pkf#x!67M;4ObLN}CmEqn|k60Sj zG$TBo*iL%_)^=uF5BxcIe zb<&*KWjhX(v)n8?NMTD2pP&tvWqb{NU|H2RkO#R?w;kgW#&MXu$B$r#{2nj7Wn=6} zDPtch2z(gh7&e~5`T&fd!Y~Jr99SC`hB7jC0!me2%;sa=D&l%Yq5bfcLdI4jSMJC_ zA@Piu+d+l-c3`c=jCEqSVI0%#0fx01V0{>IVCE9wF6<8D9LLw~gjT?2LDvlWJ=pm; z($$R}x98$NzRPi%h9ac38SY<0HwzUhFiFn}gM1x%ie!F;>WU&#=N$dGsN8=EW(AKP zQo^+LsdUinXophNUlilB^l_2OD`*<5DY952(w3K0Z!PD?Xp>duC+LthmUr!?rZuv+ z=v&q@$uLTvSiO>Ylpa}wyn!q>m2anNo6PsnT3aNqPt&v|Y@eXzH|QkrJ9N<|uW+*f z{Ah+MIEWq%_`HfS_?fN7zXlxA5yciZmG?OV6C z9o%_Pr(Q=gJoqn7OR;vg z2FyqaJ-J~6{mCdFph?iTQod8=%PHYhAZM*p=2Nr-NFQ|r8Kbj6&d^mLQ#6VBQpzup zQKZ5pG2TusB??N_ULbp@8}mUri}?$>igzvDFNyE~SzJl1Ho0V}>kE3vUCuwGcU>_d z+7*+`cj=|O5&>d#C*im{cMMK$bIXwQwmTw?-le~JDkZ}h{n1s4SeV25AVobfxc7&i zr2oR$!dR-E7fUy&-xCqKfVzU7dXiG>IQ>Pg=Wg2MP4XV<_C`t{j4u>W)A%|V4flk) zQv9B-L+d?V(@|=XBPiX6WEBoMDa-sZU6hybU(&Q(gA;^(G5#L4_++W?OPzh>OTo@( zXb39wPTqCEVBCHw}1$u5!L=GLqe1Lit#s2`2F+cliaJh&q z6xr8G*A-b}GxS6WA|h=8nQx&)K;>p?3AlI%?FcBiuYLnOPNxGgRJZFuLNpCzge+w$ zoL*ffi$KD=lg7&&&A9Xi5O-cAQuDlM#1xNdc_tc1A1u^sF)r$iUSkmC^0?6fd}Feb zGpO>_)EJaK>mKS!qo*S36g#kW|AB4zZlqm71%;zKC?nSY0QxiZaZr(7JftT{s+CYrqthMMRRX zjHr35Uuaqp3)1fur~lZSJZQf%MmJD@L?rYO-cvLlk+JI>=4SF&sHp2JDw5(56*Bza zT@fib1-Y;^H#46ud*a`3=z|U?BYTjhD?IRz542?|d!7TgW*+9zC?UizN55m4noCO) zxA9WySL`rbS*48X-Bc-dZ>!WTQn?CdyIQG8v(xmb((4~aW_07K|M8lAN(sJl{EQBn$9Fq;cXQ=dJbv^`$ zl5*lmOh1w{E^@anz7kij8$UCYGoi^45BdQ-I6U>nBSK7E^_ylE>LaRm#%v*)i>nBV zvV{K|q%mA#dAhU>2^CfO?S!~^KS;wb1ogc;&3d)L~@x#ngV3fkgE$5aFk*qY&VuzgK&5L{>~zM{z2j9yn%F7CRAQ zb&Gq|`G*kl(obII5KvRkocC))!&pj9^&T3lG4N8lUz6mYlCyR*uRnjV_OJZavYfMs bm7d>JU&C?399?oqSE8W7lOrr0ZTR|s Date: Wed, 20 Dec 2023 23:04:21 +0100 Subject: [PATCH 2/2] Support deprecated_readonly in C# json serializer --- src/idl_gen_csharp.cpp | 61 ++++++++++++++++++- tests/KeywordTest/JsonContractResolver.cs | 28 +++++++++ tests/MyGame/Example/ArrayTable.cs | 9 ++- tests/MyGame/Example/JsonContractResolver.cs | 28 +++++++++ tests/MyGame/Example/Monster.cs | 9 ++- tests/MyGame/JsonContractResolver.cs | 28 +++++++++ tests/MyGame/MonsterExtra.cs | 9 ++- .../NamespaceA/JsonContractResolver.cs | 28 +++++++++ .../NamespaceB/JsonContractResolver.cs | 28 +++++++++ .../nested_namespace_test1_generated.cs | 15 +++++ .../nested_namespace_test2_generated.cs | 15 +++++ .../nested_namespace_test3_generated.cs | 15 +++++ .../union_value_collision_generated.cs | 24 +++++++- tests/union_vector/JsonContractResolver.cs | 23 +++++++ tests/union_vector/Movie.cs | 9 ++- 15 files changed, 316 insertions(+), 13 deletions(-) create mode 100644 tests/KeywordTest/JsonContractResolver.cs create mode 100644 tests/MyGame/Example/JsonContractResolver.cs create mode 100644 tests/MyGame/JsonContractResolver.cs create mode 100644 tests/namespace_test/NamespaceA/JsonContractResolver.cs create mode 100644 tests/namespace_test/NamespaceA/NamespaceB/JsonContractResolver.cs create mode 100644 tests/union_vector/JsonContractResolver.cs diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index 0e39d6bae42..cb9e0195916 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -147,6 +147,21 @@ class CSharpGenerator : public BaseGenerator { std::string one_file_code; cur_name_space_ = parser_.current_namespace_; + if (parser_.opts.cs_gen_json_serializer && + parser_.opts.generate_object_based_api) { + std::string contractresolvercode; + GenJsonContractResolver(&contractresolvercode); + + if (parser_.opts.one_file) { + one_file_code += contractresolvercode; + } else { + if (!SaveType("JsonContractResolver", *parser_.current_namespace_, + contractresolvercode, true, parser_.opts)) { + return false; + } + } + } + for (auto it = parser_.enums_.vec.begin(); it != parser_.enums_.vec.end(); ++it) { std::string enumcode; @@ -2395,6 +2410,9 @@ class CSharpGenerator : public BaseGenerator { auto utype_name = NamespacedName(*field.value.type.enum_def); code += " [Newtonsoft.Json.JsonProperty(\"" + field.name + "_type\")]\n"; + if (field.deprecated == FieldDef::kDeprecatedReadOnly) { + code += " [JsonReadOnly()]\n"; + } if (IsVector(field.value.type)) { code += " private " + utype_name + "[] " + camel_name + "Type {\n"; code += " get {\n"; @@ -2442,6 +2460,8 @@ class CSharpGenerator : public BaseGenerator { } if (field.attributes.Lookup("hash")) { code += " [Newtonsoft.Json.JsonIgnore()]\n"; + } else if (field.deprecated == FieldDef::kDeprecatedReadOnly) { + code += " [JsonReadOnly()]\n"; } } code += " public " + type_name + " " + camel_name + " { get; set; }\n"; @@ -2491,12 +2511,18 @@ class CSharpGenerator : public BaseGenerator { code += " public static " + class_name + " DeserializeFromJson(string jsonText) {\n"; code += " return Newtonsoft.Json.JsonConvert.DeserializeObject<" + - class_name + ">(jsonText);\n"; + class_name + + ">(jsonText, new Newtonsoft.Json.JsonSerializerSettings() {\n"; + code += " ContractResolver = new JsonContractResolver(),\n"; + code += " });\n"; code += " }\n"; code += " public string SerializeToJson() {\n"; code += - " return Newtonsoft.Json.JsonConvert.SerializeObject(this, " - "Newtonsoft.Json.Formatting.Indented);\n"; + " return Newtonsoft.Json.JsonConvert.SerializeObject(this, new " + "Newtonsoft.Json.JsonSerializerSettings() {\n"; + code += " ContractResolver = new JsonContractResolver(),\n"; + code += " Formatting = Newtonsoft.Json.Formatting.Indented,\n"; + code += " });\n"; code += " }\n"; } if (parser_.root_struct_def_ == &struct_def) { @@ -2515,6 +2541,35 @@ class CSharpGenerator : public BaseGenerator { code += "}\n\n"; } + void GenJsonContractResolver(std::string *code_ptr) const { + auto &code = *code_ptr; + code += + "[AttributeUsage(AttributeTargets.Property | " + "AttributeTargets.Field)]\n"; + code += "class JsonReadOnlyAttribute : Attribute {\n"; + code += "}\n\n"; + + code += + "public class JsonContractResolver : " + "Newtonsoft.Json.Serialization.DefaultContractResolver\n"; + code += "{\n"; + code += + " protected override Newtonsoft.Json.Serialization.JsonProperty " + "CreateProperty(System.Reflection.MemberInfo member, " + "Newtonsoft.Json.MemberSerialization memberSerialization)\n"; + code += " {\n"; + code += + " var property = base.CreateProperty(member, " + "memberSerialization);\n"; + code += + " if (Attribute.IsDefined(member, " + "typeof(JsonReadOnlyAttribute)))\n"; + code += " property.Readable = false;\n"; + code += " return property;\n"; + code += " }\n"; + code += "}\n\n"; + } + // This tracks the current namespace used to determine if a type need to be // prefixed by its namespace const Namespace *cur_name_space_; diff --git a/tests/KeywordTest/JsonContractResolver.cs b/tests/KeywordTest/JsonContractResolver.cs new file mode 100644 index 00000000000..e94a516cf00 --- /dev/null +++ b/tests/KeywordTest/JsonContractResolver.cs @@ -0,0 +1,28 @@ +// +// automatically generated by the FlatBuffers compiler, do not modify +// + +namespace KeywordTest +{ + +using global::System; +using global::System.Collections.Generic; +using global::Google.FlatBuffers; + +[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] +class JsonReadOnlyAttribute : Attribute { +} + +public class JsonContractResolver : Newtonsoft.Json.Serialization.DefaultContractResolver +{ + protected override Newtonsoft.Json.Serialization.JsonProperty CreateProperty(System.Reflection.MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization) + { + var property = base.CreateProperty(member, memberSerialization); + if (Attribute.IsDefined(member, typeof(JsonReadOnlyAttribute))) + property.Readable = false; + return property; + } +} + + +} diff --git a/tests/MyGame/Example/ArrayTable.cs b/tests/MyGame/Example/ArrayTable.cs index 086915e7ca6..6bcbdc93170 100644 --- a/tests/MyGame/Example/ArrayTable.cs +++ b/tests/MyGame/Example/ArrayTable.cs @@ -57,10 +57,15 @@ public ArrayTableT() { } public static ArrayTableT DeserializeFromJson(string jsonText) { - return Newtonsoft.Json.JsonConvert.DeserializeObject(jsonText); + return Newtonsoft.Json.JsonConvert.DeserializeObject(jsonText, new Newtonsoft.Json.JsonSerializerSettings() { + ContractResolver = new JsonContractResolver(), + }); } public string SerializeToJson() { - return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented); + return Newtonsoft.Json.JsonConvert.SerializeObject(this, new Newtonsoft.Json.JsonSerializerSettings() { + ContractResolver = new JsonContractResolver(), + Formatting = Newtonsoft.Json.Formatting.Indented, + }); } public static ArrayTableT DeserializeFromBinary(byte[] fbBuffer) { return ArrayTable.GetRootAsArrayTable(new ByteBuffer(fbBuffer)).UnPack(); diff --git a/tests/MyGame/Example/JsonContractResolver.cs b/tests/MyGame/Example/JsonContractResolver.cs new file mode 100644 index 00000000000..ebf716c7f9e --- /dev/null +++ b/tests/MyGame/Example/JsonContractResolver.cs @@ -0,0 +1,28 @@ +// +// automatically generated by the FlatBuffers compiler, do not modify +// + +namespace MyGame.Example +{ + +using global::System; +using global::System.Collections.Generic; +using global::Google.FlatBuffers; + +[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] +class JsonReadOnlyAttribute : Attribute { +} + +public class JsonContractResolver : Newtonsoft.Json.Serialization.DefaultContractResolver +{ + protected override Newtonsoft.Json.Serialization.JsonProperty CreateProperty(System.Reflection.MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization) + { + var property = base.CreateProperty(member, memberSerialization); + if (Attribute.IsDefined(member, typeof(JsonReadOnlyAttribute))) + property.Readable = false; + return property; + } +} + + +} diff --git a/tests/MyGame/Example/Monster.cs b/tests/MyGame/Example/Monster.cs index 17327798208..6056b7455c8 100644 --- a/tests/MyGame/Example/Monster.cs +++ b/tests/MyGame/Example/Monster.cs @@ -1085,10 +1085,15 @@ public MonsterT() { } public static MonsterT DeserializeFromJson(string jsonText) { - return Newtonsoft.Json.JsonConvert.DeserializeObject(jsonText); + return Newtonsoft.Json.JsonConvert.DeserializeObject(jsonText, new Newtonsoft.Json.JsonSerializerSettings() { + ContractResolver = new JsonContractResolver(), + }); } public string SerializeToJson() { - return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented); + return Newtonsoft.Json.JsonConvert.SerializeObject(this, new Newtonsoft.Json.JsonSerializerSettings() { + ContractResolver = new JsonContractResolver(), + Formatting = Newtonsoft.Json.Formatting.Indented, + }); } public static MonsterT DeserializeFromBinary(byte[] fbBuffer) { return Monster.GetRootAsMonster(new ByteBuffer(fbBuffer)).UnPack(); diff --git a/tests/MyGame/JsonContractResolver.cs b/tests/MyGame/JsonContractResolver.cs new file mode 100644 index 00000000000..099573ce854 --- /dev/null +++ b/tests/MyGame/JsonContractResolver.cs @@ -0,0 +1,28 @@ +// +// automatically generated by the FlatBuffers compiler, do not modify +// + +namespace MyGame +{ + +using global::System; +using global::System.Collections.Generic; +using global::Google.FlatBuffers; + +[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] +class JsonReadOnlyAttribute : Attribute { +} + +public class JsonContractResolver : Newtonsoft.Json.Serialization.DefaultContractResolver +{ + protected override Newtonsoft.Json.Serialization.JsonProperty CreateProperty(System.Reflection.MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization) + { + var property = base.CreateProperty(member, memberSerialization); + if (Attribute.IsDefined(member, typeof(JsonReadOnlyAttribute))) + property.Readable = false; + return property; + } +} + + +} diff --git a/tests/MyGame/MonsterExtra.cs b/tests/MyGame/MonsterExtra.cs index cb3df13b6d7..1310d13a68b 100644 --- a/tests/MyGame/MonsterExtra.cs +++ b/tests/MyGame/MonsterExtra.cs @@ -191,10 +191,15 @@ public MonsterExtraT() { } public static MonsterExtraT DeserializeFromJson(string jsonText) { - return Newtonsoft.Json.JsonConvert.DeserializeObject(jsonText); + return Newtonsoft.Json.JsonConvert.DeserializeObject(jsonText, new Newtonsoft.Json.JsonSerializerSettings() { + ContractResolver = new JsonContractResolver(), + }); } public string SerializeToJson() { - return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented); + return Newtonsoft.Json.JsonConvert.SerializeObject(this, new Newtonsoft.Json.JsonSerializerSettings() { + ContractResolver = new JsonContractResolver(), + Formatting = Newtonsoft.Json.Formatting.Indented, + }); } public static MonsterExtraT DeserializeFromBinary(byte[] fbBuffer) { return MonsterExtra.GetRootAsMonsterExtra(new ByteBuffer(fbBuffer)).UnPack(); diff --git a/tests/namespace_test/NamespaceA/JsonContractResolver.cs b/tests/namespace_test/NamespaceA/JsonContractResolver.cs new file mode 100644 index 00000000000..51994323892 --- /dev/null +++ b/tests/namespace_test/NamespaceA/JsonContractResolver.cs @@ -0,0 +1,28 @@ +// +// automatically generated by the FlatBuffers compiler, do not modify +// + +namespace NamespaceA +{ + +using global::System; +using global::System.Collections.Generic; +using global::Google.FlatBuffers; + +[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] +class JsonReadOnlyAttribute : Attribute { +} + +public class JsonContractResolver : Newtonsoft.Json.Serialization.DefaultContractResolver +{ + protected override Newtonsoft.Json.Serialization.JsonProperty CreateProperty(System.Reflection.MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization) + { + var property = base.CreateProperty(member, memberSerialization); + if (Attribute.IsDefined(member, typeof(JsonReadOnlyAttribute))) + property.Readable = false; + return property; + } +} + + +} diff --git a/tests/namespace_test/NamespaceA/NamespaceB/JsonContractResolver.cs b/tests/namespace_test/NamespaceA/NamespaceB/JsonContractResolver.cs new file mode 100644 index 00000000000..6aedab71a4e --- /dev/null +++ b/tests/namespace_test/NamespaceA/NamespaceB/JsonContractResolver.cs @@ -0,0 +1,28 @@ +// +// automatically generated by the FlatBuffers compiler, do not modify +// + +namespace NamespaceA.NamespaceB +{ + +using global::System; +using global::System.Collections.Generic; +using global::Google.FlatBuffers; + +[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] +class JsonReadOnlyAttribute : Attribute { +} + +public class JsonContractResolver : Newtonsoft.Json.Serialization.DefaultContractResolver +{ + protected override Newtonsoft.Json.Serialization.JsonProperty CreateProperty(System.Reflection.MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization) + { + var property = base.CreateProperty(member, memberSerialization); + if (Attribute.IsDefined(member, typeof(JsonReadOnlyAttribute))) + property.Readable = false; + return property; + } +} + + +} diff --git a/tests/nested_namespace_test/nested_namespace_test1_generated.cs b/tests/nested_namespace_test/nested_namespace_test1_generated.cs index f1e646c4214..f9eee17eeda 100644 --- a/tests/nested_namespace_test/nested_namespace_test1_generated.cs +++ b/tests/nested_namespace_test/nested_namespace_test1_generated.cs @@ -9,6 +9,21 @@ namespace NamespaceB using global::System.Collections.Generic; using global::Google.FlatBuffers; +[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] +class JsonReadOnlyAttribute : Attribute { +} + +public class JsonContractResolver : Newtonsoft.Json.Serialization.DefaultContractResolver +{ + protected override Newtonsoft.Json.Serialization.JsonProperty CreateProperty(System.Reflection.MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization) + { + var property = base.CreateProperty(member, memberSerialization); + if (Attribute.IsDefined(member, typeof(JsonReadOnlyAttribute))) + property.Readable = false; + return property; + } +} + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] public enum Color : sbyte { diff --git a/tests/nested_namespace_test/nested_namespace_test2_generated.cs b/tests/nested_namespace_test/nested_namespace_test2_generated.cs index efd2584dd9e..c545459c94a 100644 --- a/tests/nested_namespace_test/nested_namespace_test2_generated.cs +++ b/tests/nested_namespace_test/nested_namespace_test2_generated.cs @@ -9,6 +9,21 @@ namespace NamespaceA.NamespaceB using global::System.Collections.Generic; using global::Google.FlatBuffers; +[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] +class JsonReadOnlyAttribute : Attribute { +} + +public class JsonContractResolver : Newtonsoft.Json.Serialization.DefaultContractResolver +{ + protected override Newtonsoft.Json.Serialization.JsonProperty CreateProperty(System.Reflection.MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization) + { + var property = base.CreateProperty(member, memberSerialization); + if (Attribute.IsDefined(member, typeof(JsonReadOnlyAttribute))) + property.Readable = false; + return property; + } +} + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] public enum Color : sbyte { diff --git a/tests/nested_namespace_test/nested_namespace_test3_generated.cs b/tests/nested_namespace_test/nested_namespace_test3_generated.cs index a4a64671f7e..4084d879a87 100644 --- a/tests/nested_namespace_test/nested_namespace_test3_generated.cs +++ b/tests/nested_namespace_test/nested_namespace_test3_generated.cs @@ -9,6 +9,21 @@ namespace NamespaceA.NamespaceB using global::System.Collections.Generic; using global::Google.FlatBuffers; +[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] +class JsonReadOnlyAttribute : Attribute { +} + +public class JsonContractResolver : Newtonsoft.Json.Serialization.DefaultContractResolver +{ + protected override Newtonsoft.Json.Serialization.JsonProperty CreateProperty(System.Reflection.MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization) + { + var property = base.CreateProperty(member, memberSerialization); + if (Attribute.IsDefined(member, typeof(JsonReadOnlyAttribute))) + property.Readable = false; + return property; + } +} + public struct ColorTestTable : IFlatbufferObject { private Table __p; diff --git a/tests/union_value_collsion/union_value_collision_generated.cs b/tests/union_value_collsion/union_value_collision_generated.cs index f4686997f31..01687fd98e4 100644 --- a/tests/union_value_collsion/union_value_collision_generated.cs +++ b/tests/union_value_collsion/union_value_collision_generated.cs @@ -9,6 +9,21 @@ namespace union_value_collsion using global::System.Collections.Generic; using global::Google.FlatBuffers; +[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] +class JsonReadOnlyAttribute : Attribute { +} + +public class JsonContractResolver : Newtonsoft.Json.Serialization.DefaultContractResolver +{ + protected override Newtonsoft.Json.Serialization.JsonProperty CreateProperty(System.Reflection.MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization) + { + var property = base.CreateProperty(member, memberSerialization); + if (Attribute.IsDefined(member, typeof(JsonReadOnlyAttribute))) + property.Readable = false; + return property; + } +} + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] public enum Value : byte { @@ -498,10 +513,15 @@ public CollisionT() { } public static CollisionT DeserializeFromJson(string jsonText) { - return Newtonsoft.Json.JsonConvert.DeserializeObject(jsonText); + return Newtonsoft.Json.JsonConvert.DeserializeObject(jsonText, new Newtonsoft.Json.JsonSerializerSettings() { + ContractResolver = new JsonContractResolver(), + }); } public string SerializeToJson() { - return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented); + return Newtonsoft.Json.JsonConvert.SerializeObject(this, new Newtonsoft.Json.JsonSerializerSettings() { + ContractResolver = new JsonContractResolver(), + Formatting = Newtonsoft.Json.Formatting.Indented, + }); } public static CollisionT DeserializeFromBinary(byte[] fbBuffer) { return Collision.GetRootAsCollision(new ByteBuffer(fbBuffer)).UnPack(); diff --git a/tests/union_vector/JsonContractResolver.cs b/tests/union_vector/JsonContractResolver.cs new file mode 100644 index 00000000000..ea820924084 --- /dev/null +++ b/tests/union_vector/JsonContractResolver.cs @@ -0,0 +1,23 @@ +// +// automatically generated by the FlatBuffers compiler, do not modify +// + +using global::System; +using global::System.Collections.Generic; +using global::Google.FlatBuffers; + +[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] +class JsonReadOnlyAttribute : Attribute { +} + +public class JsonContractResolver : Newtonsoft.Json.Serialization.DefaultContractResolver +{ + protected override Newtonsoft.Json.Serialization.JsonProperty CreateProperty(System.Reflection.MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization) + { + var property = base.CreateProperty(member, memberSerialization); + if (Attribute.IsDefined(member, typeof(JsonReadOnlyAttribute))) + property.Readable = false; + return property; + } +} + diff --git a/tests/union_vector/Movie.cs b/tests/union_vector/Movie.cs index 18796839944..7f580af8618 100644 --- a/tests/union_vector/Movie.cs +++ b/tests/union_vector/Movie.cs @@ -197,10 +197,15 @@ public MovieT() { } public static MovieT DeserializeFromJson(string jsonText) { - return Newtonsoft.Json.JsonConvert.DeserializeObject(jsonText); + return Newtonsoft.Json.JsonConvert.DeserializeObject(jsonText, new Newtonsoft.Json.JsonSerializerSettings() { + ContractResolver = new JsonContractResolver(), + }); } public string SerializeToJson() { - return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented); + return Newtonsoft.Json.JsonConvert.SerializeObject(this, new Newtonsoft.Json.JsonSerializerSettings() { + ContractResolver = new JsonContractResolver(), + Formatting = Newtonsoft.Json.Formatting.Indented, + }); } public static MovieT DeserializeFromBinary(byte[] fbBuffer) { return Movie.GetRootAsMovie(new ByteBuffer(fbBuffer)).UnPack();