Browse Source

Base

Starting point..!
Image 2 years ago
parent
commit
548007ea96
100 changed files with 44767 additions and 0 deletions
  1. 73 0
      DB/currentlsdb.sql
  2. BIN
      DB/world_db.zip
  3. 36 0
      EQ2/configs/LoginServer.ini
  4. 347 0
      EQ2/configs/log_config.xml
  5. 11 0
      EQ2/configs/world_db.ini
  6. 43 0
      EQ2/devtools/PacketParser/Parser DB.sql
  7. 2061 0
      EQ2/devtools/PacketParser/ParserStructs/ItemStructs.xml
  8. 1258 0
      EQ2/devtools/PacketParser/ParserStructs/SpawnStructs.xml
  9. 5405 0
      EQ2/devtools/PacketParser/ParserStructs/WorldStructs.xml
  10. 183 0
      EQ2/devtools/PacketParser/Readme.txt
  11. 1717 0
      EQ2/devtools/PacketParser/old_files/ItemStructs.xml
  12. 2208 0
      EQ2/devtools/PacketParser/old_files/ItemStructs_Parser.xml
  13. 571 0
      EQ2/devtools/PacketParser/old_files/MerchantItemStructs.xml
  14. 3434 0
      EQ2/devtools/PacketParser/old_files/ParserStructs.xml
  15. 8 0
      EQ2/devtools/PacketParser/old_files/WS_Updates.xml
  16. 3546 0
      EQ2/devtools/PacketParser/old_files/WorldStructs.xml
  17. 4073 0
      EQ2/devtools/PacketParser/old_files/WorldStructsDev.xml
  18. 10 0
      EQ2/devtools/PacketParser/parse all.bat
  19. 5 0
      EQ2/devtools/PacketParser/parser_db.ini
  20. 20 0
      EQ2/devtools/PacketParser/sql_updates/AchievementUpdates SQL.txt
  21. 1 0
      EQ2/devtools/PacketParser/sql_updates/Conversation Fix.sql
  22. 69 0
      EQ2/devtools/PacketParser/sql_updates/EQ2ParserDB SQL Updates_v0.1.1.txt
  23. 11 0
      EQ2/devtools/PacketParser/sql_updates/Item Updates.sql
  24. 24 0
      EQ2/devtools/PacketParser/sql_updates/MerchantItems.sql
  25. 39 0
      EQ2/devtools/PacketParser/sql_updates/Misc item unknown updates.sql
  26. 49 0
      EQ2/devtools/PacketParser/sql_updates/New Insert Queries.txt
  27. 85 0
      EQ2/devtools/PacketParser/sql_updates/Parser DB Updates.sql
  28. 102 0
      EQ2/devtools/PacketParser/sql_updates/Parser Item and Quest DB Changes.sql
  29. 28 0
      EQ2/devtools/PacketParser/sql_updates/Pattern Item Type update.sql
  30. 2 0
      EQ2/devtools/PacketParser/sql_updates/Quest Updates 2009-May-07.sql
  31. 29 0
      EQ2/devtools/PacketParser/sql_updates/RawDialogs.sql
  32. 32 0
      EQ2/devtools/PacketParser/sql_updates/Skill and Bauble Items update.sql
  33. 2 0
      EQ2/devtools/PacketParser/sql_updates/SpawnFix.sql
  34. 24 0
      EQ2/devtools/PacketParser/sql_updates/TSO Parser Queries.sql
  35. 40 0
      EQ2/devtools/PacketParser/sql_updates/eq2_achievements.sql
  36. 38 0
      EQ2/devtools/PacketParser/sql_updates/eq2_books.sql
  37. 82 0
      EQ2/devtools/PacketParser/sql_updates/eq2_rawdata_aa_tables.sql
  38. 94 0
      EQ2/devtools/PacketParser/sql_updates/parser_db_20070725.sql
  39. 28 0
      EQ2/devtools/PacketParser/sql_updates/parser_db_20130102.sql
  40. 56 0
      EQ2/devtools/PacketParser/sql_updates/parser_db_20130110.sql
  41. 5 0
      EQ2/devtools/PacketParser/sql_updates/parser_db_changes.sql
  42. 64 0
      EQ2/devtools/PacketParser/sql_updates/parser_stats.sql
  43. 8 0
      EQ2/devtools/PacketParser/sql_updates/raw db updates.sql
  44. 39 0
      EQ2/devtools/PacketParser/sql_updates/raw_achievements_fixes.sql
  45. 1 0
      EQ2/devtools/PacketParser/sql_updates/raw_achievements_versions.sql
  46. 44 0
      EQ2/devtools/PacketParser/sql_updates/raw_adventure_list.sql
  47. 80 0
      EQ2/devtools/PacketParser/sql_updates/raw_arenas.sql
  48. 49 0
      EQ2/devtools/PacketParser/sql_updates/raw_collections.sql
  49. 23 0
      EQ2/devtools/PacketParser/sql_updates/raw_collections1.sql
  50. 14 0
      EQ2/devtools/PacketParser/sql_updates/raw_commands.sql
  51. 23 0
      EQ2/devtools/PacketParser/sql_updates/raw_factions.sql
  52. 15 0
      EQ2/devtools/PacketParser/sql_updates/raw_factions1.sql
  53. 3 0
      EQ2/devtools/PacketParser/sql_updates/raw_item_appearances.sql
  54. 16 0
      EQ2/devtools/PacketParser/sql_updates/raw_item_details_armorset.sql
  55. 39 0
      EQ2/devtools/PacketParser/sql_updates/raw_item_details_book.sql
  56. 12 0
      EQ2/devtools/PacketParser/sql_updates/raw_item_details_house_update.sql
  57. 16 0
      EQ2/devtools/PacketParser/sql_updates/raw_item_details_itemset.sql
  58. 16 0
      EQ2/devtools/PacketParser/sql_updates/raw_item_details_pattern.sql
  59. 1 0
      EQ2/devtools/PacketParser/sql_updates/raw_item_effects-fix.sql
  60. 56 0
      EQ2/devtools/PacketParser/sql_updates/raw_item_itemsets.sql
  61. 3 0
      EQ2/devtools/PacketParser/sql_updates/raw_items-fix.sql
  62. 22 0
      EQ2/devtools/PacketParser/sql_updates/raw_map_data.sql
  63. 58 0
      EQ2/devtools/PacketParser/sql_updates/raw_merchants.sql
  64. 21 0
      EQ2/devtools/PacketParser/sql_updates/raw_mercs_pets.sql
  65. 11 0
      EQ2/devtools/PacketParser/sql_updates/raw_poi_locations.sql
  66. 2 0
      EQ2/devtools/PacketParser/sql_updates/raw_spawn_appearance_equip.sql
  67. 1 0
      EQ2/devtools/PacketParser/sql_updates/raw_spawn_info_popID.sql
  68. 6 0
      EQ2/devtools/PacketParser/sql_updates/raw_spawn_info_updates.sql
  69. 1 0
      EQ2/devtools/PacketParser/sql_updates/raw_spawns_20090726.sql
  70. 15 0
      EQ2/devtools/PacketParser/sql_updates/raw_spell_visuals.sql
  71. 4 0
      EQ2/devtools/PacketParser/sql_updates/raw_spell_visuals_fix.sql
  72. 60 0
      EQ2/devtools/PacketParser/sql_updates/raw_spells, raw_items and raw_collections update.sql
  73. 71 0
      EQ2/devtools/PacketParser/sql_updates/raw_spells.sql
  74. 5 0
      EQ2/devtools/PacketParser/sql_updates/raw_spells2.sql
  75. 5 0
      EQ2/devtools/PacketParser/sql_updates/raw_spells3.sql
  76. 4 0
      EQ2/devtools/PacketParser/sql_updates/raw_spells4.sql
  77. 40 0
      EQ2/devtools/PacketParser/sql_updates/raw_spells5.sql
  78. 18 0
      EQ2/devtools/PacketParser/sql_updates/raw_spells_aa.sql
  79. 10 0
      EQ2/devtools/PacketParser/sql_updates/raw_titles.sql
  80. 1 0
      EQ2/devtools/PacketParser/sql_updates/raw_traditions.sql
  81. 114 0
      EQ2/distrib/DISTRIB.bat
  82. 4 0
      EQ2/distrib/readme.txt
  83. 674 0
      EQ2/docs/COPYING.txt
  84. 1862 0
      EQ2/docs/ChangeLog.txt
  85. BIN
      EQ2/docs/Client_Versions.xlsx
  86. 14 0
      EQ2/docs/Notes about World.sln.txt
  87. 474 0
      EQ2/docs/Opcodes_List_2005.txt
  88. 18 0
      EQ2/docs/ToDo.txt
  89. 89 0
      EQ2/docs/bonus table.html
  90. 73 0
      EQ2/docs/charactersheet_struct.txt
  91. 10792 0
      EQ2/docs/opcodes.sql
  92. 175 0
      EQ2/docs/pull type chance.html
  93. 174 0
      EQ2/source/LUA/include/lauxlib.h
  94. 388 0
      EQ2/source/LUA/include/lua.h
  95. 9 0
      EQ2/source/LUA/include/lua.hpp
  96. 763 0
      EQ2/source/LUA/include/luaconf.h
  97. 53 0
      EQ2/source/LUA/include/lualib.h
  98. 1298 0
      EQ2/source/LUA/lapi.c
  99. 24 0
      EQ2/source/LUA/lapi.h
  100. 1043 0
      EQ2/source/LUA/lauxlib.c

File diff suppressed because it is too large
+ 73 - 0
DB/currentlsdb.sql


BIN
DB/world_db.zip


+ 36 - 0
EQ2/configs/LoginServer.ini

@@ -0,0 +1,36 @@
+### --- This file tells world.exe what loginserver to connect to.
+### --- Change the account and password fields to the information you used when you created your SERVER account.
+
+### --- NOTE: the word "Server" is added to each server automaticly.
+
+# READ README.MD
+
+[LoginServer]
+loginserver=eq2emulator.net
+loginport=9100
+worldname=WORLD_NAME_HERE
+worldaddress=EXTERNAL_IP_HERE
+#internalworldaddress=INTERNAL_IP_HERE (If used, otherwise blank)
+worldport=9000
+locked=false
+account=
+password=
+#autotableupdates retrieves the latest table updates and applies them to your database
+#autotableupdates valid options=always, ask, and never
+autotableupdates=always
+#autotableverbose displays detailed information about the updates; options=true or false
+autotableverbose=false
+#autotabledata retrieves the latest data for tables like the opcodes table; options=true or false
+autotabledata=true
+
+[WorldServer]
+Defaultstatus=
+Unavailzone=
+
+[UpdateServer]
+updateserveraddress=updates.eq2emulator.net
+updateserverport=9104
+
+[LoginConfig]
+ServerMode=StandAlone
+ServerPort=9100

+ 347 - 0
EQ2/configs/log_config.xml

@@ -0,0 +1,347 @@
+<EQ2EmuLogConfigs>
+	<Help Text="Details on Log Config here: http://eq2emulator.net/wiki/index.php/Admins:LogSystem" />
+	<!-- SYSTEM Loggers -->
+	<LogConfig Category="WORLD">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="LOGIN">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="PATCHER">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="PARSER">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="INIT">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="LOGIN_INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="LOGIN_WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="LOGIN_ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="LOGIN_DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PATCHER_INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="PATCHER_WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="PATCHER_ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="PATCHER_DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+	</LogConfig>
+	<LogConfig Category="DATABASE">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="QUERY" Level="0" Color="Cyan" Enabled="False" Logs="1" />
+		<ConfigType Type="RESULT" Level="0" Color="CyanBold" Enabled="False" Logs="1" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="MUTEX">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="MISC">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+		<ConfigType Type="TODO" Level="0" Color="YellowBold" Enabled="False" Logs="3" />
+	</LogConfig>
+	<!-- NETWORK Loggers -->
+	<LogConfig Category="CCLIENT">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="NET">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="OPCODE">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="MagentaBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="PACKET">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<!-- PLAYER Loggers -->
+	<LogConfig Category="PLAYER">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<!-- SUBSYSTEM Loggers -->
+	<LogConfig Category="ACHIEVEMENT">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="CHAT">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="COLLECTION">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="COMBAT">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="COMMAND">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="FACTION">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="GUILD">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="ITEM">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="LOOT">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="LUA">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="MERCHANT">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="NPC">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="COMBAT" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="SPELLS" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="AI" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="DAMAGE" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="NPC_AI">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="PET">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="COMBAT" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="SPELLS" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="AI" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="DAMAGE" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="QUEST">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="REWARD" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="STEP" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="RULESYS">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="SKILL">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="SPELL">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="TRADESKILL">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="TRANSPORT">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<!-- SPAWN Loggers -->
+	<LogConfig Category="SPAWN">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="OBJECT">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="SIGN">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="WIDGET">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="GROUNDSPAWN">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<!-- ZONE Loggers -->
+	<LogConfig Category="ZONE">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+	<LogConfig Category="INSTANCE">
+		<ConfigType Type="INFO" Level="0" Color="WhiteBold" Enabled="True" Logs="3" />
+		<ConfigType Type="WARNING" Level="0" Color="YellowBold" Enabled="True" Logs="3" />
+		<ConfigType Type="ERROR" Level="0" Color="RedBold" Enabled="True" Logs="3" />
+		<ConfigType Type="DEBUG" Level="0" Color="GreenBold" Enabled="False" Logs="3" />
+		<ConfigType Type="PACKET" Level="0" Color="Yellow" Enabled="False" Logs="3" />
+		<ConfigType Type="TRACE" Level="0" Color="Yellow" Enabled="False" Logs="1" />
+	</LogConfig>
+</EQ2EmuLogConfigs>

+ 11 - 0
EQ2/configs/world_db.ini

@@ -0,0 +1,11 @@
+# READ README.MD!
+
+[Database]
+host=127.0.0.1
+user=root
+password=pass
+database=eq2emu
+
+
+### --- This file tells world.exe what computer mySQL is on. Host should
+### --- be left "localhost" unless mysql is on a differant computer than world.exe.

File diff suppressed because it is too large
+ 43 - 0
EQ2/devtools/PacketParser/Parser DB.sql


+ 2061 - 0
EQ2/devtools/PacketParser/ParserStructs/ItemStructs.xml

@@ -0,0 +1,2061 @@
+<EQ2Emulator>
+<Struct Name="Substruct_Item" ClientVersion="1" >
+<Data ElementName="unique_id" Type="int32" Size="1" />
+<Data ElementName="bag_id" Type="int32" Size="1" />
+<Data ElementName="inv_slot_id" Type="int32" Size="1" />
+<Data ElementName="menu_type" Type="int32" Size="1" />
+<Data ElementName="index" Type="int16" Size="1" />
+<Data ElementName="icon" Type="int16" Size="1" />
+<Data ElementName="slot_id" Type="int8" Size="1" />
+<Data ElementName="count" Type="int8" Size="1" />
+<Data ElementName="unknown4" Type="int8" Size="1" />
+<Data ElementName="tier" Type="int8" Size="1" />
+<Data ElementName="num_slots" Type="int8" Size="1" />
+<Data ElementName="item_id" Type="sint32" Size="1" />
+<Data ElementName="name" Type="char" Size="64" />
+<Data ElementName="unknown6" Type="int8" Size="17" />
+</Struct>
+<Struct Name="WS_UpdateInventory" ClientVersion="1" OpcodeName="OP_UpdateInventoryMsg" >
+<Data ElementName="item_count" Type="int16" />
+<Data ElementName="packed_size" Type="int32" />
+<Data ElementName="item_array" Type="Array" ArraySizeVariable="item_count">
+	<Data ElementName="items" Substruct="Substruct_Item" Size="1" />
+</Data>
+<Data ElementName="equip_flag" Type="int8" Size="1" />
+</Struct>
+<Struct Name="Substruct_Item" ClientVersion="893" >
+<Data ElementName="unique_id" Type="int32" Size="1" />
+<Data ElementName="bag_id" Type="int32" Size="1" />
+<Data ElementName="inv_slot_id" Type="int32" Size="1" />
+<Data ElementName="menu_type" Type="int32" Size="1" />
+<Data ElementName="unknown3b" Type="int32" Size="1" />
+<Data ElementName="index" Type="int16" Size="1" />
+<Data ElementName="icon" Type="int16" Size="1" />
+<Data ElementName="slot_id" Type="int8" Size="1" />
+<Data ElementName="count" Type="int8" Size="1" />
+<Data ElementName="unknown4" Type="int8" Size="1" />
+<Data ElementName="tier" Type="int8" Size="1" />
+<Data ElementName="num_slots" Type="int8" Size="1" />
+<Data ElementName="item_id" Type="sint32" Size="1" />
+<Data ElementName="name" Type="char" Size="64" />
+<Data ElementName="unknown6" Type="int8" Size="17" />
+</Struct>
+<Struct Name="WS_UpdateInventory" ClientVersion="893" OpcodeName="OP_UpdateInventoryMsg" >
+<Data ElementName="item_count" Type="int16" />
+<Data ElementName="packed_size" Type="int32" />
+<Data ElementName="item_array" Type="Array" ArraySizeVariable="item_count">
+	<Data ElementName="items" Substruct="Substruct_Item" Size="1" />
+</Data>
+<Data ElementName="equip_flag" Type="int8" Size="1" />
+</Struct>
+<Struct Name="Substruct_ItemFooter" ClientVersion="1" >
+<Data ElementName="num_effects" Type="int8" IfVariableNotSet="header_info_header_unknown_0_0,header_unknown_0" />
+<Data ElementName="effect_array" Type="Array" ArraySizeVariable="num_effects">
+	<Data ElementName="subbulletflag" Type="int8" Size = "1" />
+	<Data ElementName="effect" Type="EQ2_16Bit_String" Size="1" />
+	<Data ElementName="percentage" Type="int8" Size = "1" />
+</Data>
+<Data ElementName="required_classes" Type="int64" Size="1" />
+<Data ElementName="recommended_level" Type="int8" Size="1" />
+<Data ElementName="stack_size" Type="int8" Size="1" IfVariableNotSet="mitigation_low,rating" />
+<Data ElementName="required_level" Type="int8" Size="1" IfVariableSet="mitigation_low,rating" />
+<Data ElementName="set_name" Type="EQ2_8Bit_String" Size="1" />
+<Data ElementName="num_sets" Type="int8" IfVariableSet="footer_set_name_0" />
+<Data ElementName="set_array" Type="Array" ArraySizeVariable="num_sets">
+	<Data ElementName="set_num_needed" Type="int8" Size = "1" />
+	<Data ElementName="set_stat_count" Type="int8" />
+	<Data ElementName="set_stat_array" Type="Array" ArraySizeVariable="set_stat_count">
+		<Data ElementName="set_stat_type" Type="int8" Size="1" />
+		<Data ElementName="set_stat_subtype" Type="int8" Size="1" />
+		<Data ElementName="set_value" Type="sint16" Size="1" OversizedValue="127" OversizedByte="127" />
+		<Data ElementName="set_stat_name" Type="EQ2_8Bit_String" Size="1" />
+	</Data>
+	<Data ElementName="num_set_effects" Type="int8" />
+	<Data ElementName="set_effect_array" Type="Array" ArraySizeVariable="num_set_effects">
+		<Data ElementName="set_subbulletflag" Type="int8" Size = "1" />
+		<Data ElementName="set_effect" Type="EQ2_16Bit_String" Size="1" />
+		<Data ElementName="set_percentage" Type="int8" Size = "1" />
+	</Data>
+</Data>
+<Data ElementName="num_items_in_set" Type="int8" IfVariableSet="footer_set_name_0" />
+<Data ElementName="set_items_array" Type="Array" ArraySizeVariable="num_items_in_set">
+	<Data ElementName="set_items_unknown1" Type="int8" Size = "1" />
+	<Data ElementName="set_items_unknown2" Type="int8" Size = "1" />
+	<Data ElementName="set_item_name" Type="EQ2_16Bit_String" Size="1" />
+</Data>
+<Data ElementName="collectable" Type="int8"  IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="collection_needed" Type="int8" IfVariableSet="footer_collectable_0" />
+<Data ElementName="offers_quest" Type="EQ2_8Bit_String" Size="1" IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="part_of_quest" Type="EQ2_8Bit_String" Size="1" IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="offers_quest_color" Type="int8" IfVariableSet="footer_offers_quest_0" />
+<Data ElementName="part_of_quest_color" Type="int8" IfVariableSet="footer_part_of_quest_0" />
+<Data ElementName="unknown_set_data1" Type="int8" Size = "1"  IfVariableSet="footer_set_name_0" />
+<Data ElementName="charges" Type="int8" IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="total_charges" Type="int16" IfVariableSet="footer_charges_0" />
+<Data ElementName="charges_left" Type="int16" IfVariableSet="footer_charges_0" />
+<Data ElementName="unknown_set_info" Type="int32" Size = "1" IfVariableSet="footer_set_name_0" />
+<Data ElementName="unknown_set_info2" Type="int8" Size = "1" IfVariableSet="footer_set_name_0" />
+<Data ElementName="unknown_set_info3" Type="int32" Size = "1"  IfVariableSet="footer_unknown_set_info2_0" />
+<Data ElementName="display_charges" Type="int8" />
+<Data ElementName="crafting_flag" Type="int8" />
+<Data ElementName="transmuted_flag" Type="int8" />
+<Data ElementName="name" Type="EQ2_8Bit_String" Size="1" />
+<Data ElementName="description" Type="EQ2_16Bit_String" Size="1" />
+</Struct>
+<Struct Name="Substruct_ItemFooter" ClientVersion="860" >
+<Data ElementName="num_effects" Type="int8" IfVariableNotSet="header_info_header_unknown_0_0,header_unknown_0" />
+<Data ElementName="effect_array" Type="Array" ArraySizeVariable="num_effects">
+	<Data ElementName="subbulletflag" Type="int8" Size = "1" />
+	<Data ElementName="effect" Type="EQ2_16Bit_String" Size="1" />
+	<Data ElementName="percentage" Type="int8" Size = "1" />
+</Data>
+<Data ElementName="required_classes" Type="int64" Size="1" />
+<Data ElementName="recommended_level" Type="int8" Size="1" />
+<Data ElementName="stack_size" Type="int8" Size="1" IfVariableNotSet="mitigation_low,rating" />
+<Data ElementName="required_level" Type="int8" Size="1" IfVariableSet="mitigation_low,rating" />
+<Data ElementName="set_name" Type="EQ2_8Bit_String" Size="1" />
+<Data ElementName="num_sets" Type="int8" IfVariableSet="footer_set_name_0" />
+<Data ElementName="set_array" Type="Array" ArraySizeVariable="num_sets">
+	<Data ElementName="set_num_needed" Type="int8" Size = "1" />
+	<Data ElementName="set_stat_count" Type="int8" />
+	<Data ElementName="set_stat_array" Type="Array" ArraySizeVariable="set_stat_count">
+		<Data ElementName="set_stat_type" Type="int8" Size="1" />
+		<Data ElementName="set_stat_subtype" Type="int8" Size="1" />
+		<Data ElementName="set_value" Type="sint16" Size="1" OversizedValue="127" OversizedByte="127" />
+		<Data ElementName="set_stat_name" Type="EQ2_8Bit_String" Size="1" />
+	</Data>
+	<Data ElementName="num_set_effects" Type="int8" />
+	<Data ElementName="set_effect_array" Type="Array" ArraySizeVariable="num_set_effects">
+		<Data ElementName="set_subbulletflag" Type="int8" Size = "1" />
+		<Data ElementName="set_effect" Type="EQ2_16Bit_String" Size="1" />
+		<Data ElementName="set_percentage" Type="int8" Size = "1" />
+	</Data>
+</Data>
+<Data ElementName="num_items_in_set" Type="int8" IfVariableSet="footer_set_name_0" />
+<Data ElementName="set_items_array" Type="Array" ArraySizeVariable="num_items_in_set">
+	<Data ElementName="set_items_unknown1" Type="int8" Size = "1" />
+	<Data ElementName="set_items_unknown2" Type="int8" Size = "1" />
+	<Data ElementName="set_item_name" Type="EQ2_16Bit_String" Size="1" />
+</Data>
+<Data ElementName="collectable" Type="int8"  IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="collection_needed" Type="int8" IfVariableSet="footer_collectable_0" />
+<Data ElementName="offers_quest" Type="EQ2_8Bit_String" Size="1" IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="part_of_quest" Type="EQ2_8Bit_String" Size="1" IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="offers_quest_color" Type="int8" IfVariableSet="footer_offers_quest_0" />
+<Data ElementName="part_of_quest_color" Type="int8" IfVariableSet="footer_part_of_quest_0" />
+<Data ElementName="unknown_set_data1" Type="int8" Size = "1"  IfVariableSet="footer_set_name_0" />
+<Data ElementName="charges" Type="int8" IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="total_charges" Type="int16" IfVariableSet="footer_charges_0" />
+<Data ElementName="charges_left" Type="int16" IfVariableSet="footer_charges_0" />
+<Data ElementName="unknown_set_info" Type="int32" Size = "1" IfVariableSet="footer_set_name_0" />
+<Data ElementName="unknown_set_info2" Type="int8" Size = "1" IfVariableSet="footer_set_name_0" />
+<Data ElementName="unknown_set_info3" Type="int32" Size = "1"  IfVariableSet="footer_unknown_set_info2_0" />
+<Data ElementName="footer_unknown5" Type="int8" Size="1" />
+<Data ElementName="display_charges" Type="int8" />
+<Data ElementName="crafting_flag" Type="int8" />
+<Data ElementName="transmuted_flag" Type="int8" />
+<Data ElementName="name" Type="EQ2_8Bit_String" Size="1" />
+<Data ElementName="description" Type="EQ2_16Bit_String" Size="1" />
+</Struct>
+<Struct Name="Substruct_ItemFooter" ClientVersion="893" >
+<Data ElementName="num_effects" Type="int8" IfVariableNotSet="header_info_header_unknown_0_0,header_unknown_0" />
+<Data ElementName="effect_array" Type="Array" ArraySizeVariable="num_effects">
+	<Data ElementName="subbulletflag" Type="int8" Size = "1" />
+	<Data ElementName="effect" Type="EQ2_16Bit_String" Size="1" />
+	<Data ElementName="percentage" Type="int8" Size = "1" />
+</Data>
+<Data ElementName="required_classes" Type="int64" Size="1" />
+<Data ElementName="recommended_level" Type="int8" Size="1" />
+<Data ElementName="required_level" Type="int8" Size="1" IfVariableSet="mitigation_low,rating,spell_info_id" />
+<Data ElementName="footer_unknown2" Type="int8" Size="1" IfVariableNotSet="mitigation_low,rating,spell_info_id" />
+<Data ElementName="stack_size" Type="int8" Size="1" />
+<Data ElementName="footer_unknown3" Type="int8" Size="1" />
+<Data ElementName="set_name" Type="EQ2_8Bit_String" Size="1" />
+<Data ElementName="num_sets" Type="int8" IfVariableSet="footer_set_name_0" />
+<Data ElementName="set_array" Type="Array" ArraySizeVariable="num_sets">
+	<Data ElementName="set_num_needed" Type="int8" Size = "1" />
+	<Data ElementName="set_stat_count" Type="int8" />
+	<Data ElementName="set_stat_array" Type="Array" ArraySizeVariable="set_stat_count">
+		<Data ElementName="set_stat_type" Type="int8" Size="1" />
+		<Data ElementName="set_stat_subtype" Type="int8" Size="1" />
+		<Data ElementName="set_value" Type="sint16" Size="1" OversizedValue="127" OversizedByte="127" />
+		<Data ElementName="set_stat_name" Type="EQ2_8Bit_String" Size="1" />
+	</Data>
+	<Data ElementName="num_set_effects" Type="int8" />
+	<Data ElementName="set_effect_array" Type="Array" ArraySizeVariable="num_set_effects">
+		<Data ElementName="set_subbulletflag" Type="int8" Size = "1" />
+		<Data ElementName="set_effect" Type="EQ2_16Bit_String" Size="1" />
+		<Data ElementName="set_percentage" Type="int8" Size = "1" />
+	</Data>
+</Data>
+<Data ElementName="num_items_in_set" Type="int8" IfVariableSet="footer_set_name_0" />
+<Data ElementName="set_items_array" Type="Array" ArraySizeVariable="num_items_in_set">
+	<Data ElementName="set_items_unknown1" Type="int8" Size = "1" />
+	<Data ElementName="set_items_unknown2" Type="int8" Size = "1" />
+	<Data ElementName="set_item_name" Type="EQ2_16Bit_String" Size="1" />
+</Data>
+<Data ElementName="collectable" Type="int8"  IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="collection_needed" Type="int8" IfVariableSet="footer_collectable_0" />
+<Data ElementName="offers_quest" Type="EQ2_8Bit_String" Size="1" IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="part_of_quest" Type="EQ2_8Bit_String" Size="1" IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="offers_quest_color" Type="int8" IfVariableSet="footer_offers_quest_0" />
+<Data ElementName="part_of_quest_color" Type="int8" IfVariableSet="footer_part_of_quest_0" />
+<Data ElementName="unknown_set_data1" Type="int8" Size = "1"  IfVariableSet="footer_set_name_0" />
+<Data ElementName="charges" Type="int8" IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="total_charges" Type="int16" IfVariableSet="footer_charges_0" />
+<Data ElementName="charges_left" Type="int16" IfVariableSet="footer_charges_0" />
+<Data ElementName="unknown_set_info" Type="int32" Size = "1"  IfVariableSet="footer_set_name_0" />
+<Data ElementName="unknown_set_info2" Type="int8" Size = "1"  IfVariableSet="footer_set_name_0" />
+<Data ElementName="unknown_set_info3" Type="int32" Size = "1"  IfVariableSet="footer_unknown_set_info2_0" />
+<Data ElementName="footer_unknown5" Type="int8" Size="1" />
+<Data ElementName="display_charges" Type="int8" />
+<Data ElementName="crafting_flag" Type="int8" />
+<Data ElementName="transmuted_flag" Type="int8" />
+<Data ElementName="name" Type="EQ2_8Bit_String" Size="1" />
+<Data ElementName="description" Type="EQ2_16Bit_String" Size="1" />
+</Struct>
+<Struct Name="Substruct_ItemFooter" ClientVersion="927" >
+<Data ElementName="num_effects" Type="int8" IfVariableNotSet="header_info_header_unknown_0_0,header_unknown_0" />
+<Data ElementName="effect_array" Type="Array" ArraySizeVariable="num_effects">
+	<Data ElementName="subbulletflag" Type="int8" Size = "1" />
+	<Data ElementName="effect" Type="EQ2_16Bit_String" Size="1" />
+	<Data ElementName="percentage" Type="int8" Size = "1" />
+</Data>
+<Data ElementName="required_classes" Type="int64" Size="1" />
+<Data ElementName="recommended_level" Type="int8" Size="1" />
+<Data ElementName="required_level" Type="int8" Size="1" IfVariableSet="mitigation_low,rating,spell_info_id" />
+<Data ElementName="footer_unknown2" Type="int8" Size="1" IfVariableNotSet="mitigation_low,rating,spell_info_id" />
+<Data ElementName="stack_size" Type="int8" Size="1" />
+<Data ElementName="footer_unknown3" Type="int8" Size="1" />
+<Data ElementName="set_name" Type="EQ2_8Bit_String" Size="1" />
+<Data ElementName="num_sets" Type="int8" IfVariableSet="footer_set_name_0" />
+<Data ElementName="set_array" Type="Array" ArraySizeVariable="num_sets">
+	<Data ElementName="set_num_needed" Type="int8" Size = "1" />
+	<Data ElementName="set_stat_count" Type="int8" />
+	<Data ElementName="set_stat_array" Type="Array" ArraySizeVariable="set_stat_count">
+		<Data ElementName="set_stat_type" Type="int8" Size="1" />
+		<Data ElementName="set_stat_subtype" Type="int8" Size="1" />
+		<Data ElementName="set_value" Type="sint16" Size="1" OversizedValue="127" OversizedByte="127" />
+		<Data ElementName="set_stat_name" Type="EQ2_8Bit_String" Size="1" />
+	</Data>
+	<Data ElementName="num_set_effects" Type="int8" />
+	<Data ElementName="set_effect_array" Type="Array" ArraySizeVariable="num_set_effects">
+		<Data ElementName="set_subbulletflag" Type="int8" Size = "1" />
+		<Data ElementName="set_effect" Type="EQ2_16Bit_String" Size="1" />
+		<Data ElementName="set_percentage" Type="int8" Size = "1" />
+	</Data>
+</Data>
+<Data ElementName="num_items_in_set" Type="int8" IfVariableSet="footer_set_name_0" />
+<Data ElementName="set_items_array" Type="Array" ArraySizeVariable="num_items_in_set">
+	<Data ElementName="set_items_unknown1" Type="int8" Size = "1" />
+	<Data ElementName="set_items_unknown2" Type="int8" Size = "1" />
+	<Data ElementName="set_item_name" Type="EQ2_16Bit_String" Size="1" />
+</Data>
+<Data ElementName="footer_unknown4" Type="int8" Size="1" />
+<Data ElementName="collectable" Type="int8"  IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="collection_needed" Type="int8" IfVariableSet="footer_collectable_0" />
+<Data ElementName="offers_quest" Type="EQ2_8Bit_String" Size="1" IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="part_of_quest" Type="EQ2_8Bit_String" Size="1" IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="offers_quest_color" Type="int8" IfVariableSet="footer_offers_quest_0" />
+<Data ElementName="part_of_quest_color" Type="int8" IfVariableSet="footer_part_of_quest_0" />
+<Data ElementName="unknown_set_data1" Type="int8" Size = "1"  IfVariableSet="footer_set_name_0" />
+<Data ElementName="charges" Type="int8" IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="total_charges" Type="int16" IfVariableSet="footer_charges_0" />
+<Data ElementName="charges_left" Type="int16" IfVariableSet="footer_charges_0" />
+<Data ElementName="unknown_set_info" Type="int32" Size = "1"  IfVariableSet="footer_set_name_0" />
+<Data ElementName="unknown_set_info2" Type="int8" Size = "1"  IfVariableSet="footer_set_name_0" />
+<Data ElementName="unknown_set_info3" Type="int32" Size = "1"  IfVariableSet="footer_unknown_set_info2_0" />
+<Data ElementName="footer_unknown5" Type="int8" Size="1" />
+<Data ElementName="display_charges" Type="int8" />
+<Data ElementName="crafting_flag" Type="int8" />
+<Data ElementName="transmuted_flag" Type="int8" />
+<Data ElementName="name" Type="EQ2_8Bit_String" Size="1" />
+<Data ElementName="description" Type="EQ2_16Bit_String" Size="1" />
+</Struct>
+<Struct Name="Substruct_ItemFooter" ClientVersion="1027" >
+<Data ElementName="num_effects" Type="int8" IfVariableNotSet="header_info_header_unknown_0_0,header_unknown_0" />
+<Data ElementName="effect_array" Type="Array" ArraySizeVariable="num_effects">
+	<Data ElementName="subbulletflag" Type="int8" Size = "1" />
+	<Data ElementName="effect" Type="EQ2_16Bit_String" Size="1" />
+	<Data ElementName="percentage" Type="int8" Size = "1" />
+</Data>
+<Data ElementName="required_classes" Type="int64" Size="1" />
+<Data ElementName="recommended_level" Type="int8" Size="1" />
+<Data ElementName="required_level" Type="int8" Size="1" IfVariableSet="mitigation_low,rating,spell_info_id" />
+<Data ElementName="stack_size" Type="int8" Size="1" />
+<Data ElementName="footer_unknown3" Type="int8" Size="1" />
+<Data ElementName="footer_unknown3a" Type="int32" Size="1" />
+<Data ElementName="set_name" Type="EQ2_8Bit_String" Size="1" />
+<Data ElementName="num_sets" Type="int8" IfVariableSet="footer_set_name_0" />
+<Data ElementName="set_array" Type="Array" ArraySizeVariable="num_sets">
+	<Data ElementName="set_num_needed" Type="int8" Size = "1" />
+	<Data ElementName="set_stat_count" Type="int8" />
+	<Data ElementName="set_stat_array" Type="Array" ArraySizeVariable="set_stat_count">
+		<Data ElementName="set_stat_type" Type="int8" Size="1" />
+		<Data ElementName="set_stat_subtype" Type="int8" Size="1" />
+		<Data ElementName="set_value" Type="sint16" Size="1" OversizedValue="127" OversizedByte="127" Type2="float" />
+		<Data ElementName="set_stat_name" Type="EQ2_8Bit_String" Size="1" />
+	</Data>
+	<Data ElementName="num_set_effects" Type="int8" />
+	<Data ElementName="set_effect_array" Type="Array" ArraySizeVariable="num_set_effects">
+		<Data ElementName="set_subbulletflag" Type="int8" Size = "1" />
+		<Data ElementName="set_effect" Type="EQ2_16Bit_String" Size="1" />
+		<Data ElementName="set_percentage" Type="int8" Size = "1" />
+	</Data>
+</Data>
+<Data ElementName="num_items_in_set" Type="int8" IfVariableSet="footer_set_name_0" />
+<Data ElementName="set_items_array" Type="Array" ArraySizeVariable="num_items_in_set">
+	<Data ElementName="set_items_unknown1" Type="int8" Size = "1" />
+	<Data ElementName="set_items_unknown2" Type="int8" Size = "1" />
+	<Data ElementName="set_item_name" Type="EQ2_16Bit_String" Size="1" />
+</Data>
+<Data ElementName="footer_unknown4" Type="int8" Size="1" />
+<Data ElementName="collectable" Type="int8"  IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="collection_needed" Type="int8" IfVariableSet="footer_collectable_0" />
+<Data ElementName="offers_quest" Type="EQ2_8Bit_String" Size="1" IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="part_of_quest" Type="EQ2_8Bit_String" Size="1" IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="offers_quest_color" Type="int8" IfVariableSet="footer_offers_quest_0" />
+<Data ElementName="part_of_quest_color" Type="int8" IfVariableSet="footer_part_of_quest_0" />
+<Data ElementName="unknown_set_data1" Type="int8" Size = "1" IfVariableSet="footer_set_name_0" />
+<Data ElementName="charges" Type="int8" IfVariableNotSet="footer_set_name_0" />
+<Data ElementName="total_charges" Type="int16" IfVariableSet="footer_charges_0" />
+<Data ElementName="charges_left" Type="int16" IfVariableSet="footer_charges_0" />
+<Data ElementName="unknown_set_info" Type="int32" Size = "1" IfVariableSet="footer_set_name_0" />
+<Data ElementName="unknown_set_info2" Type="int8" Size = "1" IfVariableSet="footer_set_name_0" />
+<Data ElementName="unknown_set_info3" Type="int32" Size = "1" IfVariableSet="footer_unknown_set_info2_0" />
+<Data ElementName="num_adornments" Type="int16" Size="1" />
+<Data ElementName="adornment_array" Type="Array" ArraySizeVariable="num_adornments">
+  <Data ElementName="adornment_item_id" Type="int32" Size="1" />
+  <Data ElementName="adornment_name" Type="EQ2_16Bit_String" Size="1" />
+</Data>
+<Data ElementName="display_charges" Type="int8" />
+<Data ElementName="crafting_flag" Type="int8" />
+<Data ElementName="transmuted_flag" Type="int8" />
+<Data ElementName="name" Type="EQ2_8Bit_String" Size="1" />
+<Data ElementName="description" Type="EQ2_16Bit_String" Size="1" />
+</Struct>
+<Struct Name="Substruct_BaseItemDescription" ClientVersion="1" >
+<Data ElementName="creator_flag" Type="int8" Size="1" />
+<Data ElementName="creator" Type="EQ2_8Bit_String" Size="1" />
+<Data ElementName="adornment" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="unknown3" Type="int32" Size="2" />
+<Data ElementName="first_desc" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="unique_id" Type="int32" Size="1" />
+<Data ElementName="broker_item_id" Type="int64" Size="1" />
+<Data ElementName="item_id" Type="sint32" Size="1" />
+<Data ElementName="icon" Type="int16" Size="1" />
+<Data ElementName="tier" Type="int8" Size="1" />
+<Data ElementName="flags" Type="int32" Size="1" />
+<Data ElementName="unknown8" Type="int8" Size="17" />
+<Data ElementName="stat_count" Type="int8" />
+<Data ElementName="stat_array" Type="Array" ArraySizeVariable="stat_count">
+	<Data ElementName="stat_type" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+	<Data ElementName="stat_subtype" Type="sint16" OversizedValue="127" OversizedByte="127" Size="1" />
+	<Data ElementName="value" Type="sint16" OversizedValue="127" OversizedByte="127" Size="1" />
+	<Data ElementName="stat_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="stat_string_count" Type="int8" />
+<Data ElementName="stat_string_array" Type="Array" ArraySizeVariable="stat_string_count">
+	<Data ElementName="stat_string" Type="EQ2_8Bit_String" Size="1" />
+	<Data ElementName="adornment_flag" Type="int8" Size="1" />
+	<Data ElementName="adornment_array" Type="Array" ArraySizeVariable="adornment_flag">
+		<Data ElementName="adornment_unknown" Type="int8" Size="1" />
+	</Data>	
+	<Data ElementName="stat_description" Type="EQ2_16Bit_String" Size="1" />
+</Data>
+<Data ElementName="condition" Type="int8" Size="1" />
+<Data ElementName="weight" Type="int32" Size="1" />
+<Data ElementName="skill_req1" Type="int32" Size="1" />
+<Data ElementName="skill_req2" Type="int32" Size="1" />
+<Data ElementName="skill_min" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="class_count" Type="int8" />
+<Data ElementName="class_array" Type="Array" ArraySizeVariable="class_count">
+	<Data ElementName="adventure_class" Type="int8" Size="1" />
+	<Data ElementName="tradeskill_class" Type="int8" Size="1" />
+	<Data ElementName="level" Type="int16" Size="1" />
+</Data>
+<Data ElementName="slot_count" Type="int8" />
+<Data ElementName="slot_array" Type="Array" ArraySizeVariable="slot_count">
+	<Data ElementName="slot" Type="int8" Size="1" />
+</Data>
+<Data ElementName="footer_type" Type="int32" Size="1" />
+</Struct>
+<Struct Name="Substruct_BaseItemDescription" ClientVersion="860" >
+<Data ElementName="creator_flag" Type="int8" Size="1" />
+<Data ElementName="creator" Type="EQ2_8Bit_String" Size="1" />
+<Data ElementName="adornment" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="unknown3" Type="int32" Size="2" />
+<Data ElementName="adornment_desc" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="unknown_desc" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="first_desc" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="unique_id" Type="int32" Size="1" />
+<Data ElementName="broker_item_id" Type="int64" Size="1" />
+<Data ElementName="item_id" Type="sint32" Size="1" />
+<Data ElementName="icon" Type="int16" Size="1" />
+<Data ElementName="tier" Type="int8" Size="1" />
+<Data ElementName="flags" Type="int32" Size="1" />
+<Data ElementName="unknown8" Type="int8" Size="17" />
+<Data ElementName="stat_count" Type="int8" />
+<Data ElementName="stat_array" Type="Array" ArraySizeVariable="stat_count">
+	<Data ElementName="stat_type" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+	<Data ElementName="stat_subtype" Type="sint16" OversizedValue="127" OversizedByte="127" Size="1" />
+	<Data ElementName="value" Type="sint16" OversizedValue="127" OversizedByte="127" />
+	<Data ElementName="stat_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="stat_string_count" Type="int8" />
+<Data ElementName="stat_string_array" Type="Array" ArraySizeVariable="stat_string_count">
+	<Data ElementName="stat_string" Type="EQ2_8Bit_String" Size="1" />
+	<Data ElementName="adornment_flag" Type="int8" Size="1" />
+	<Data ElementName="adornment_array" Type="Array" ArraySizeVariable="adornment_flag">
+		<Data ElementName="adornment_unknown" Type="int8" Size="1" />
+	</Data>	
+	<Data ElementName="stat_description" Type="EQ2_16Bit_String" Size="1" />
+</Data>
+<Data ElementName="condition" Type="int8" Size="1" />
+<Data ElementName="weight" Type="int32" Size="1" />
+<Data ElementName="skill_req1" Type="int32" Size="1" />
+<Data ElementName="skill_req2" Type="int32" Size="1" />
+<Data ElementName="skill_min" Type="int16" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="class_count" Type="int8" />
+<Data ElementName="class_array" Type="Array" ArraySizeVariable="class_count">
+	<Data ElementName="adventure_class" Type="int8" Size="1" />
+	<Data ElementName="tradeskill_class" Type="int8" Size="1" />
+	<Data ElementName="level" Type="int16" Size="1" />
+</Data>
+<Data ElementName="slot_count" Type="int8" />
+<Data ElementName="slot_array" Type="Array" ArraySizeVariable="slot_count">
+	<Data ElementName="slot" Type="int8" Size="1" />
+</Data>
+<Data ElementName="footer_type" Type="int32" Size="1" />
+</Struct>
+<Struct Name="Substruct_BaseItemDescription" ClientVersion="1027" >
+<Data ElementName="creator_flag" Type="int8" Size="1" />
+<Data ElementName="creator" Type="EQ2_8Bit_String" Size="1" />
+<Data ElementName="unique_id" Type="int32" Size="1" />
+<Data ElementName="broker_item_id" Type="int64" Size="1" />
+<Data ElementName="item_id" Type="sint32" Size="1" />
+<Data ElementName="icon" Type="int16" Size="1" />
+<Data ElementName="tier" Type="int8" Size="1" />
+<Data ElementName="flags" Type="int32" Size="1" />
+<Data ElementName="unknown8" Type="int8" Size="17" />
+<Data ElementName="stat_count" Type="int8" />
+<Data ElementName="stat_array" Type="Array" ArraySizeVariable="stat_count">
+	<Data ElementName="stat_type" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+	<Data ElementName="stat_subtype" Type="sint16" OversizedValue="127" OversizedByte="127" Size="1" />
+	<Data ElementName="value" Type="sint16" OversizedValue="127" OversizedByte="127" Type2="float" />
+	<Data ElementName="stat_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="unknown_stat_count" Type="int8" />
+<Data ElementName="unknown_stat_array" Type="Array" ArraySizeVariable="unknown_stat_count">
+	<Data ElementName="unknown_stat_type" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+</Data>
+<Data ElementName="stat_string_count" Type="int8" />
+<Data ElementName="stat_string_array" Type="Array" ArraySizeVariable="stat_string_count">
+	<Data ElementName="stat_string" Type="EQ2_8Bit_String" Size="1" />
+	<Data ElementName="adornment_flag" Type="int8" Size="1" />
+	<Data ElementName="adornment_array" Type="Array" ArraySizeVariable="adornment_flag">
+		<Data ElementName="adornment_unknown" Type="int8" Size="1" />
+	</Data>	
+	<Data ElementName="stat_description" Type="EQ2_16Bit_String" Size="1" />
+</Data>
+<Data ElementName="condition" Type="int8" Size="1" />
+<Data ElementName="weight" Type="int32" Size="1" />
+<Data ElementName="skill_req1" Type="int32" Size="1" />
+<Data ElementName="skill_req2" Type="int32" Size="1" />
+<Data ElementName="skill_min" Type="int16" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="class_count" Type="int8" />
+<Data ElementName="class_array" Type="Array" ArraySizeVariable="class_count">
+	<Data ElementName="adventure_class" Type="int8" Size="1" />
+	<Data ElementName="tradeskill_class" Type="int8" Size="1" />
+	<Data ElementName="level" Type="int16" Size="1" />
+</Data>
+<Data ElementName="slot_count" Type="int8" />
+<Data ElementName="slot_array" Type="Array" ArraySizeVariable="slot_count">
+	<Data ElementName="slot" Type="int8" Size="1" />
+</Data>
+<Data ElementName="footer_type" Type="int32" Size="1" />
+</Struct>
+<Struct Name="Substruct_BaseMerchantItemDescription" ClientVersion="1" >
+<Data ElementName="creator_flag" Type="int8" Size="1" />
+<Data ElementName="creator" Type="EQ2_8Bit_String" Size="1" />
+<Data ElementName="adornment" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="unknown3" Type="int32" Size="1" />
+<Data ElementName="first_desc" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="unique_id" Type="int32" Size="1" />
+<Data ElementName="item_id" Type="sint32" Size="1" />
+<Data ElementName="icon" Type="int16" Size="1" />
+<Data ElementName="tier" Type="int8" Size="1" />
+<Data ElementName="flags" Type="int32" Size="1" />
+<Data ElementName="unknown8" Type="int8" Size="17" />
+<Data ElementName="stat_count" Type="int8" />
+<Data ElementName="stat_array" Type="Array" ArraySizeVariable="stat_count">
+	<Data ElementName="stat_type" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+	<Data ElementName="stat_subtype" Type="sint16" OversizedValue="127" OversizedByte="127" Size="1" />
+	<Data ElementName="value" Type="sint16" OversizedValue="127" OversizedByte="127" Size="1" />
+	<Data ElementName="stat_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="stat_string_count" Type="int8" />
+<Data ElementName="stat_string_array" Type="Array" ArraySizeVariable="stat_string_count">
+	<Data ElementName="stat_string" Type="EQ2_8Bit_String" Size="1" />
+	<Data ElementName="adornment_flag" Type="int8" Size="1" />
+	<Data ElementName="adornment_array" Type="Array" ArraySizeVariable="adornment_flag">
+		<Data ElementName="adornment_unknown" Type="int8" Size="1" />
+	</Data>	
+	<Data ElementName="stat_description" Type="EQ2_16Bit_String" Size="1" />
+</Data>
+<Data ElementName="condition" Type="int8" Size="1" />
+<Data ElementName="weight" Type="int32" Size="1" />
+<Data ElementName="skill_req1" Type="int32" Size="1" />
+<Data ElementName="skill_req2" Type="int32" Size="1" />
+<Data ElementName="skill_min" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="class_count" Type="int8" />
+<Data ElementName="class_array" Type="Array" ArraySizeVariable="class_count">
+	<Data ElementName="adventure_class" Type="int8" Size="1" />
+	<Data ElementName="tradeskill_class" Type="int8" Size="1" />
+	<Data ElementName="level" Type="int16" Size="1" />
+</Data>
+<Data ElementName="slot_count" Type="int8" />
+<Data ElementName="slot_array" Type="Array" ArraySizeVariable="slot_count">
+	<Data ElementName="slot" Type="int8" Size="1" />
+</Data>
+<Data ElementName="footer_type" Type="int32" Size="1" />
+</Struct>
+<Struct Name="Substruct_BaseMerchantItemDescription" ClientVersion="860" >
+<Data ElementName="creator_flag" Type="int8" Size="1" />
+<Data ElementName="creator" Type="EQ2_8Bit_String" Size="1" />
+<Data ElementName="adornment" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="unknown3" Type="int32" Size="2" />
+<Data ElementName="adornment_desc" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="unknown_desc" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="first_desc" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="unique_id" Type="int32" Size="1" />
+<Data ElementName="item_id" Type="sint32" Size="1" />
+<Data ElementName="icon" Type="int16" Size="1" />
+<Data ElementName="tier" Type="int8" Size="1" />
+<Data ElementName="flags" Type="int32" Size="1" />
+<Data ElementName="unknown8" Type="int8" Size="17" />
+<Data ElementName="stat_count" Type="int8" />
+<Data ElementName="stat_array" Type="Array" ArraySizeVariable="stat_count">
+	<Data ElementName="stat_type" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+	<Data ElementName="stat_subtype" Type="sint16" OversizedValue="127" OversizedByte="127" Size="1" />
+	<Data ElementName="value" Type="sint16" OversizedValue="127" OversizedByte="127" />
+	<Data ElementName="stat_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="stat_string_count" Type="int8" />
+<Data ElementName="stat_string_array" Type="Array" ArraySizeVariable="stat_string_count">
+	<Data ElementName="stat_string" Type="EQ2_8Bit_String" Size="1" />
+	<Data ElementName="adornment_flag" Type="int8" Size="1" />
+	<Data ElementName="adornment_array" Type="Array" ArraySizeVariable="adornment_flag">
+		<Data ElementName="adornment_unknown" Type="int8" Size="1" />
+	</Data>	
+	<Data ElementName="stat_description" Type="EQ2_16Bit_String" Size="1" />
+</Data>
+<Data ElementName="condition" Type="int8" Size="1" />
+<Data ElementName="weight" Type="int32" Size="1" />
+<Data ElementName="skill_req1" Type="int32" Size="1" />
+<Data ElementName="skill_req2" Type="int32" Size="1" />
+<Data ElementName="skill_min" Type="int16" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="class_count" Type="int8" />
+<Data ElementName="class_array" Type="Array" ArraySizeVariable="class_count">
+	<Data ElementName="adventure_class" Type="int8" Size="1" />
+	<Data ElementName="tradeskill_class" Type="int8" Size="1" />
+	<Data ElementName="level" Type="int16" Size="1" />
+</Data>
+<Data ElementName="slot_count" Type="int8" />
+<Data ElementName="slot_array" Type="Array" ArraySizeVariable="slot_count">
+	<Data ElementName="slot" Type="int8" Size="1" />
+</Data>
+<Data ElementName="footer_type" Type="int32" Size="1" />
+</Struct>
+<Struct Name="Substruct_BaseMerchantItemDescription" ClientVersion="1027" >
+<Data ElementName="creator_flag" Type="int8" Size="1" />
+<Data ElementName="creator" Type="EQ2_8Bit_String" Size="1" />
+<Data ElementName="adornment" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="unknown3" Type="int32" Size="2" />
+<Data ElementName="adornment_desc" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="unknown_desc" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="first_desc" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="unique_id" Type="int32" Size="1" />
+<Data ElementName="item_id" Type="sint32" Size="1" />
+<Data ElementName="icon" Type="int16" Size="1" />
+<Data ElementName="tier" Type="int8" Size="1" />
+<Data ElementName="flags" Type="int32" Size="1" />
+<Data ElementName="unknown8" Type="int8" Size="17" />
+<Data ElementName="stat_count" Type="int8" />
+<Data ElementName="stat_array" Type="Array" ArraySizeVariable="stat_count">
+  <Data ElementName="stat_type" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+  <Data ElementName="stat_subtype" Type="sint16" OversizedValue="127" OversizedByte="127" Size="1" />
+  <Data ElementName="value" Type="sint16" OversizedValue="127" OversizedByte="127" Type2="float" />
+  <Data ElementName="stat_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="stat_string_count" Type="int8" />
+<Data ElementName="stat_string_array" Type="Array" ArraySizeVariable="stat_string_count">
+  <Data ElementName="stat_string" Type="EQ2_8Bit_String" Size="1" />
+  <Data ElementName="adornment_flag" Type="int8" Size="1" />
+  <Data ElementName="adornment_array" Type="Array" ArraySizeVariable="adornment_flag">
+    <Data ElementName="adornment_unknown" Type="int8" Size="1" />
+  </Data>
+  <Data ElementName="stat_description" Type="EQ2_16Bit_String" Size="1" />
+</Data>
+<Data ElementName="condition" Type="int8" Size="1" />
+<Data ElementName="weight" Type="int32" Size="1" />
+<Data ElementName="skill_req1" Type="int32" Size="1" />
+<Data ElementName="skill_req2" Type="int32" Size="1" />
+<Data ElementName="skill_min" Type="int16" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="class_count" Type="int8" />
+<Data ElementName="class_array" Type="Array" ArraySizeVariable="class_count">
+  <Data ElementName="adventure_class" Type="int8" Size="1" />
+  <Data ElementName="tradeskill_class" Type="int8" Size="1" />
+  <Data ElementName="level" Type="int16" Size="1" />
+</Data>
+<Data ElementName="slot_count" Type="int8" />
+<Data ElementName="slot_array" Type="Array" ArraySizeVariable="slot_count">
+  <Data ElementName="slot" Type="int8" Size="1" />
+</Data>
+<Data ElementName="footer_type" Type="int32" Size="1" />
+</Struct>
+<Struct Name="Substruct_ItemDescription" ClientVersion="1" >
+<Data ElementName="info_header" Substruct="WS_ExamineInfoHeader" Size="1" />
+<Data ElementName="info" Substruct="Substruct_BaseItemDescription" Size="1" />
+<Data ElementName="item_type" Type="int8" Size="1" />
+</Struct>
+<Struct Name="Substruct_ItemDescription" ClientVersion="860" >
+<Data ElementName="info_header" Substruct="WS_ExamineInfoHeader" Size="1" />
+<Data ElementName="info" Substruct="Substruct_BaseItemDescription" Size="1" />
+<Data ElementName="item_type" Type="int8" Size="1" />
+</Struct>
+<Struct Name="Substruct_ItemDescription" ClientVersion="893" >
+<Data ElementName="info_header" Substruct="WS_ExamineInfoHeader" Size="1" />
+<Data ElementName="info" Substruct="Substruct_BaseItemDescription" Size="1" />
+<Data ElementName="item_type" Type="int8" Size="1" />
+</Struct>
+<Struct Name="Substruct_ItemDescription" ClientVersion="1027" >
+<Data ElementName="info_header" Substruct="WS_ExamineInfoHeader" Size="1" />
+<Data ElementName="info" Substruct="Substruct_BaseItemDescription" Size="1" />
+<Data ElementName="item_type" Type="int8" Size="1" />
+</Struct>
+<Struct Name="Substruct_QuestItemDescription" ClientVersion="1" >
+<Data ElementName="info_header" Substruct="WS_QuestExamineInfoHeader" Size="1" />
+<Data ElementName="info" Substruct="Substruct_BaseItemDescription" Size="1" />
+<Data ElementName="item_type" Type="int8" Size="1" />
+</Struct>
+<Struct Name="Substruct_QuestItemDescription" ClientVersion="860" >
+<Data ElementName="info_header" Substruct="WS_QuestExamineInfoHeader" Size="1" />
+<Data ElementName="info" Substruct="Substruct_BaseItemDescription" Size="1" />
+<Data ElementName="item_type" Type="int8" Size="1" />
+</Struct>
+<Struct Name="WS_QuestItemRewards" ClientVersion="1" >
+<Data ElementName="reward_id" Type="sint32" Size="1" />
+<Data ElementName="header" SubStruct="Substruct_QuestItemDescription" Size="1" />
+</Struct>
+<Struct Name="WS_QuestItemRewards" ClientVersion="860" >
+<Data ElementName="reward_id" Type="sint32" Size="1" />
+<Data ElementName="header" SubStruct="Substruct_QuestItemDescription" Size="1" />
+</Struct>
+<Struct Name="Substruct_LootItemDescription" ClientVersion="1" >
+<Data ElementName="info_header" Substruct="WS_ExamineInfoHeader" Size="1" />
+<Data ElementName="info" Substruct="Substruct_BaseItemDescription" Size="1" />
+</Struct>
+<Struct Name="Substruct_LootItemDescription" ClientVersion="860" >
+<Data ElementName="info_header" Substruct="WS_ExamineInfoHeader" Size="1" />
+<Data ElementName="info" Substruct="Substruct_BaseItemDescription" Size="1" />
+</Struct>
+<Struct Name="Substruct_MerchantItemDescription" ClientVersion="1" >
+<Data ElementName="info_header" Substruct="WS_ExamineInfoHeader" Size="1" />
+<Data ElementName="info" Substruct="Substruct_BaseMerchantItemDescription" Size="1" />
+<Data ElementName="item_type" Type="int8" Size="1" />
+</Struct>
+<Struct Name="Substruct_MerchantItemDescription" ClientVersion="860" >
+<Data ElementName="info_header" Substruct="WS_ExamineInfoHeader" Size="1" />
+<Data ElementName="info" Substruct="Substruct_BaseMerchantItemDescription" Size="1" />
+<Data ElementName="item_type" Type="int8" Size="1" />
+</Struct>
+<Struct Name="Substruct_MerchantItemDescription" ClientVersion="893" >
+<Data ElementName="info_header" Substruct="WS_ExamineInfoHeader" Size="1" />
+<Data ElementName="info" Substruct="Substruct_BaseMerchantItemDescription" Size="1" />
+<Data ElementName="item_type" Type="int8" Size="1" />
+</Struct>
+<Struct Name="WS_ItemGeneric" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemRange" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="damage_low1" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="damage_high1" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="damage_low2" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="damage_high2" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="damage_low3" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="damage_high3" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="delay" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="range_low" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="range_high" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="damage_type" Type="int8" Size="1" />
+<Data ElementName="rating" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemThrown" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="range" Type="sint32" Size="1" />
+<Data ElementName="damage_modifier" Type="sint32" Size="1" />
+<Data ElementName="hit_bonus" Type="float" Size="1" />
+<Data ElementName="damage_type" Type="int32" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemWeapon" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="wield_type" Type="int8" Size="1" />
+<Data ElementName="damage_low1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="delay" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_type" Type="int8" Size="1" />
+<Data ElementName="rating" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemArmor" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="mitigation_low" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="mitigation_high" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemShield" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="mitigation_low" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="mitigation_high" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemPattern" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_patterns" Type="int8" Size="1" />
+<Data ElementName="pattern_array" Type="Array" ArraySizeVariable="num_patterns">
+	<Data ElementName="item_id" Type="sint32" Size="1" />
+	<Data ElementName="item_crc" Type="sint32" Size="1" />
+	<Data ElementName="item_icon" Type="int16" Size="1" />
+	<Data ElementName="item_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemArmorSet" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_armor_pieces" Type="int8" Size="1" />
+<Data ElementName="piece_array" Type="Array" ArraySizeVariable="num_armor_pieces">
+	<Data ElementName="item_id" Type="sint32" Size="1" />
+	<Data ElementName="item_crc" Type="sint32" Size="1" />
+	<Data ElementName="item_icon" Type="int16" Size="1" />
+	<Data ElementName="item_name" Type="EQ2_16Bit_String" Size="1" />
+	<Data ElementName="unknown_piece" Type="int32" Size="1" />
+</Data>
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemBag" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_slots" Type="int8" Size="1" />
+<Data ElementName="num_empty" Type="int8" Size="1" />
+<Data ElementName="weight_reduction" Type="int16" Size="1" />
+<Data ElementName="num_names" Type="int8" Size="1" />
+<Data ElementName="name_array" Type="Array" ArraySizeVariable="num_names">
+	<Data ElementName="item_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="unknown12" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemFood" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="food_type" Type="int8" Size="1" />
+<Data ElementName="level" Type="int8" Size="1" />
+<Data ElementName="duration" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemBauble" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="cast" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="recovery" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="duration" Type="int32" Size="1" />
+<Data ElementName="recast" Type="float" Size="1" />
+<Data ElementName="display_cast_time" Type="int8" Size="1" />
+<Data ElementName="display_bauble_type" Type="int8" Size="1" />
+<Data ElementName="effect_radius" Type="float" Size="1" />
+<Data ElementName="max_aoe_targets" Type="int32" Size="1" />
+<Data ElementName="display_until_cancelled" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemSkill" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="spell_info" Substruct="WS_SpellInfo" Size="1" />
+<Data ElementName="scribed" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemHouse" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="status_rent_reduction" Type="sint32" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemHouseContainer" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="allowed_types" Type="int32" Size="1" />
+<Data ElementName="unknown12" Type="int32" Size="1" />
+<Data ElementName="num_slots" Type="int16" Size="1" />
+<Data ElementName="unknown13" Type="int8" Size="1" />
+<Data ElementName="broker_commission" Type="int16" Size="1" />
+<Data ElementName="fence_commission" Type="int16" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemRecipeBook" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_recipes" Type="int16" Size="1" OversizedValue="127" />
+<Data ElementName="recipe_array" Type="Array" ArraySizeVariable="num_recipes">
+	<Data ElementName="recipe_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="uses" Type="int16" Size="1" />
+<Data ElementName="scribed" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemGeneric" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemThrown" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="range" Type="sint32" Size="1" />
+<Data ElementName="damage_modifier" Type="sint32" Size="1" />
+<Data ElementName="hit_bonus" Type="float" Size="1" />
+<Data ElementName="damage_type" Type="int32" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemRange" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="damage_low1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="delay" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="range_low" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="range_high" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_type" Type="int8" Size="1" />
+<Data ElementName="rating" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemWeapon" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="wield_type" Type="int8" Size="1" />
+<Data ElementName="damage_low1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="delay" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_type" Type="int8" Size="1" />
+<Data ElementName="rating" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemArmor" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="mitigation_low" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="mitigation_high" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemShield" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="mitigation_low" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="mitigation_high" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemPattern" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_patterns" Type="int8" Size="1" />
+<Data ElementName="pattern_array" Type="Array" ArraySizeVariable="num_patterns">
+	<Data ElementName="item_id" Type="sint32" Size="1" />
+	<Data ElementName="item_crc" Type="sint32" Size="1" />
+	<Data ElementName="item_icon" Type="int16" Size="1" />
+	<Data ElementName="item_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemArmorSet" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_armor_pieces" Type="int8" Size="1" />
+<Data ElementName="piece_array" Type="Array" ArraySizeVariable="num_armor_pieces">
+	<Data ElementName="item_id" Type="sint32" Size="1" />
+	<Data ElementName="item_crc" Type="sint32" Size="1" />
+	<Data ElementName="item_icon" Type="int16" Size="1" />
+	<Data ElementName="item_name" Type="EQ2_16Bit_String" Size="1" />
+	<Data ElementName="unknown_piece" Type="int32" Size="1" />
+</Data>
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemBag" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_slots" Type="int8" Size="1" />
+<Data ElementName="num_empty" Type="int8" Size="1" />
+<Data ElementName="weight_reduction" Type="int16" Size="1" />
+<Data ElementName="num_names" Type="int8" Size="1" />
+<Data ElementName="name_array" Type="Array" ArraySizeVariable="num_names">
+	<Data ElementName="item_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="unknown12" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemFood" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="food_type" Type="int8" Size="1" />
+<Data ElementName="level" Type="int8" Size="1" />
+<Data ElementName="duration" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemBauble" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="cast" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="recovery" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="duration" Type="int32" Size="1" />
+<Data ElementName="recast" Type="float" Size="1" />
+<Data ElementName="display_slot_optional" Type="int8" Size="1" />
+<Data ElementName="display_cast_time" Type="int8" Size="1" />
+<Data ElementName="display_bauble_type" Type="int8" Size="1" />
+<Data ElementName="effect_radius" Type="float" Size="1" />
+<Data ElementName="max_aoe_targets" Type="int32" Size="1" />
+<Data ElementName="display_until_cancelled" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemSkill" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="spell_info" Substruct="WS_SpellInfo" Size="1" />
+<Data ElementName="scribed" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemHouse" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="status_rent_reduction" Type="sint32" Size="1" />
+<Data ElementName="coin_rent_reduction" Type="float" Size="1" />
+<Data ElementName="house_unknown2" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemHouseContainer" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="allowed_types" Type="int32" Size="1" />
+<Data ElementName="unknown12" Type="int32" Size="1" />
+<Data ElementName="num_slots" Type="int16" Size="1" />
+<Data ElementName="unknown13" Type="int8" Size="1" />
+<Data ElementName="broker_commission" Type="int16" Size="1" />
+<Data ElementName="fence_commission" Type="int16" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemRecipeBook" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_recipes" Type="int16" Size="1" OversizedValue="127" />
+<Data ElementName="recipe_array" Type="Array" ArraySizeVariable="num_recipes">
+	<Data ElementName="recipe_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="uses" Type="int16" Size="1" />
+<Data ElementName="scribed" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemGeneric" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemThrown" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="range" Type="sint32" Size="1" />
+<Data ElementName="damage_modifier" Type="sint32" Size="1" />
+<Data ElementName="hit_bonus" Type="float" Size="1" />
+<Data ElementName="damage_type" Type="int32" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemRange" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="damage_low1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="delay" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="range_low" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="range_high" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_type" Type="int8" Size="1" />
+<Data ElementName="rating" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemWeapon" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="wield_type" Type="int8" Size="1" />
+<Data ElementName="damage_low1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="delay" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_type" Type="int8" Size="1" />
+<Data ElementName="rating" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemArmor" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="mitigation_low" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="mitigation_high" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemShield" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="mitigation_low" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="mitigation_high" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemPattern" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_patterns" Type="int8" Size="1" />
+<Data ElementName="pattern_array" Type="Array" ArraySizeVariable="num_patterns">
+	<Data ElementName="item_id" Type="sint32" Size="1" />
+	<Data ElementName="item_crc" Type="sint32" Size="1" />
+	<Data ElementName="item_icon" Type="int16" Size="1" />
+	<Data ElementName="item_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemArmorSet" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_armor_pieces" Type="int8" Size="1" />
+<Data ElementName="piece_array" Type="Array" ArraySizeVariable="num_armor_pieces">
+	<Data ElementName="item_id" Type="sint32" Size="1" />
+	<Data ElementName="item_crc" Type="sint32" Size="1" />
+	<Data ElementName="item_icon" Type="int16" Size="1" />
+	<Data ElementName="item_name" Type="EQ2_16Bit_String" Size="1" />
+	<Data ElementName="unknown_piece" Type="int32" Size="1" />
+</Data>
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemBag" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_slots" Type="int8" Size="1" />
+<Data ElementName="num_empty" Type="int8" Size="1" />
+<Data ElementName="weight_reduction" Type="int16" Size="1" />
+<Data ElementName="num_names" Type="int8" Size="1" />
+<Data ElementName="name_array" Type="Array" ArraySizeVariable="num_names">
+	<Data ElementName="item_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="unknown12" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemFood" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="food_type" Type="int8" Size="1" />
+<Data ElementName="level" Type="int8" Size="1" />
+<Data ElementName="duration" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemBauble" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="cast" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="recovery" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="duration" Type="int32" Size="1" />
+<Data ElementName="recast" Type="float" Size="1" />
+<Data ElementName="display_slot_optional" Type="int8" Size="1" />
+<Data ElementName="display_cast_time" Type="int8" Size="1" />
+<Data ElementName="display_bauble_type" Type="int8" Size="1" />
+<Data ElementName="effect_radius" Type="float" Size="1" />
+<Data ElementName="max_aoe_targets" Type="int32" Size="1" />
+<Data ElementName="display_until_cancelled" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemSkill" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="spell_info" Substruct="WS_SpellInfo" Size="1" />
+<Data ElementName="scribed" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemHouse" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="status_rent_reduction" Type="sint32" Size="1" />
+<Data ElementName="coin_rent_reduction" Type="float" Size="1" />
+<Data ElementName="house_unknown2" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemHouse" ClientVersion="898" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="status_rent_reduction" Type="sint32" Size="1" />
+<Data ElementName="coin_rent_reduction" Type="float" Size="1" />
+<Data ElementName="house_unknown2" Type="int8" Size="2" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemHouseContainer" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="allowed_types" Type="int32" Size="1" />
+<Data ElementName="unknown12" Type="int32" Size="1" />
+<Data ElementName="num_slots" Type="int16" Size="1" />
+<Data ElementName="unknown13" Type="int8" Size="1" />
+<Data ElementName="broker_commission" Type="int16" Size="1" />
+<Data ElementName="fence_commission" Type="int16" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemRecipeBook" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_recipes" Type="int16" Size="1" OversizedValue="127" />
+<Data ElementName="recipe_array" Type="Array" ArraySizeVariable="num_recipes">
+	<Data ElementName="recipe_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="uses" Type="int16" Size="1" />
+<Data ElementName="scribed" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemGeneric" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemThrown" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="range" Type="sint32" Size="1" />
+<Data ElementName="damage_modifier" Type="sint32" Size="1" />
+<Data ElementName="hit_bonus" Type="float" Size="1" />
+<Data ElementName="damage_type" Type="int32" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemRange" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="damage_low1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="delay" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="range_low" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="range_high" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_type" Type="int8" Size="1" />
+<Data ElementName="rating" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemWeapon" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="wield_type" Type="int8" Size="1" />
+<Data ElementName="damage_low1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="delay" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_type" Type="int8" Size="1" />
+<Data ElementName="rating" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemArmor" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="mitigation_low" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="mitigation_high" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemPattern" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_patterns" Type="int8" Size="1" />
+<Data ElementName="pattern_array" Type="Array" ArraySizeVariable="num_patterns">
+	<Data ElementName="item_id" Type="sint32" Size="1" />
+	<Data ElementName="item_crc" Type="sint32" Size="1" />
+	<Data ElementName="item_icon" Type="int16" Size="1" />
+	<Data ElementName="item_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemArmorSet" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_armor_pieces" Type="int8" Size="1" />
+<Data ElementName="piece_array" Type="Array" ArraySizeVariable="num_armor_pieces">
+	<Data ElementName="unknown_piece0" Type="int8" Size="1" />
+	<Data ElementName="item_id" Type="sint32" Size="1" />
+	<Data ElementName="item_crc" Type="sint32" Size="1" />
+	<Data ElementName="item_icon" Type="int16" Size="1" />
+	<Data ElementName="item_name" Type="EQ2_16Bit_String" Size="1" />
+	<Data ElementName="unknown_piece" Type="int32" Size="1" />
+</Data>
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemBag" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_slots" Type="int8" Size="1" />
+<Data ElementName="num_empty" Type="int8" Size="1" />
+<Data ElementName="weight_reduction" Type="int16" Size="1" />
+<Data ElementName="num_names" Type="int8" Size="1" />
+<Data ElementName="name_array" Type="Array" ArraySizeVariable="num_names">
+	<Data ElementName="item_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="unknown12" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemFood" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="food_type" Type="int8" Size="1" />
+<Data ElementName="level" Type="int8" Size="1" />
+<Data ElementName="duration" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemBauble" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="cast" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="recovery" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="duration" Type="int32" Size="1" />
+<Data ElementName="recast" Type="float" Size="1" />
+<Data ElementName="display_slot_optional" Type="int8" Size="1" />
+<Data ElementName="display_cast_time" Type="int8" Size="1" />
+<Data ElementName="display_bauble_type" Type="int8" Size="1" />
+<Data ElementName="effect_radius" Type="float" Size="1" />
+<Data ElementName="max_aoe_targets" Type="int32" Size="1" />
+<Data ElementName="display_until_cancelled" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemSkill" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="spell_info" Substruct="WS_SpellInfo" Size="1" />
+<Data ElementName="scribed" Type="int8" Size="1" />
+<Data ElementName="scribed_better_version" Type="int8" Size="1" IfVariableSet="scribed" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemHouse" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="status_rent_reduction" Type="sint32" Size="1" />
+<Data ElementName="coin_rent_reduction" Type="float" Size="1" />
+<Data ElementName="house_unknown2" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemShield" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="mitigation_low" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="mitigation_high" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemHouse" ClientVersion="939" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="status_rent_reduction" Type="sint32" Size="1" />
+<Data ElementName="coin_rent_reduction" Type="float" Size="1" />
+<Data ElementName="house_unknown2" Type="int8" Size="1" />
+<Data ElementName="house_only" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemHouseContainer" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="allowed_types" Type="int32" Size="1" />
+<Data ElementName="unknown12" Type="int32" Size="1" />
+<Data ElementName="num_slots" Type="int16" Size="1" />
+<Data ElementName="unknown13" Type="int8" Size="1" />
+<Data ElementName="broker_commission" Type="int16" Size="1" />
+<Data ElementName="fence_commission" Type="int16" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemRecipeBook" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_recipes" Type="int16" Size="1" OversizedValue="127" />
+<Data ElementName="recipe_array" Type="Array" ArraySizeVariable="num_recipes">
+	<Data ElementName="recipe_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="uses" Type="int16" Size="1" />
+<Data ElementName="scribed" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemSkill" ClientVersion="954" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="spell_info" Substruct="WS_SpellInfo" Size="1" />
+<Data ElementName="scribed" Type="int8" Size="1" />
+<Data ElementName="scribed_better_version" Type="int8" Size="1" IfVariableSet="scribed" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemHouse" ClientVersion="955" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="status_rent_reduction" Type="sint32" Size="1" />
+<Data ElementName="coin_rent_reduction" Type="float" Size="1" />
+<Data ElementName="house_only" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemBook" ClientVersion="955" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="language" Type="int8" Size="1" />
+<Data ElementName="author" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="title" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemGeneric" ClientVersion="1027" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemThrown" ClientVersion="1027" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="range" Type="sint32" Size="1" />
+<Data ElementName="damage_modifier" Type="sint32" Size="1" />
+<Data ElementName="hit_bonus" Type="float" Size="1" />
+<Data ElementName="damage_type" Type="int32" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemRange" ClientVersion="1027" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="damage_low1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="delay" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="range_low" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="range_high" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_type" Type="int8" Size="1" />
+<Data ElementName="rating" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemWeapon" ClientVersion="1027" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="wield_type" Type="int8" Size="1" />
+<Data ElementName="damage_low1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="delay" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_type" Type="int8" Size="1" />
+<Data ElementName="rating" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemArmor" ClientVersion="1027" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="mitigation_low" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="mitigation_high" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="armor_unknown1" Type="int32" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemPattern" ClientVersion="1027" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_patterns" Type="int8" Size="1" />
+<Data ElementName="pattern_array" Type="Array" ArraySizeVariable="num_patterns">
+	<Data ElementName="item_id" Type="sint32" Size="1" />
+	<Data ElementName="item_crc" Type="sint32" Size="1" />
+	<Data ElementName="item_icon" Type="int16" Size="1" />
+	<Data ElementName="item_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemArmorSet" ClientVersion="1027" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_armor_pieces" Type="int8" Size="1" />
+<Data ElementName="piece_array" Type="Array" ArraySizeVariable="num_armor_pieces">
+	<Data ElementName="unknown_piece0" Type="int8" Size="1" />
+	<Data ElementName="item_id" Type="sint32" Size="1" />
+	<Data ElementName="item_crc" Type="sint32" Size="1" />
+	<Data ElementName="item_icon" Type="int16" Size="1" />
+	<Data ElementName="item_name" Type="EQ2_16Bit_String" Size="1" />
+	<Data ElementName="unknown_piece" Type="int32" Size="1" />
+</Data>
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemBag" ClientVersion="1027" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_slots" Type="int8" Size="1" />
+<Data ElementName="num_empty" Type="int8" Size="1" />
+<Data ElementName="weight_reduction" Type="int16" Size="1" />
+<Data ElementName="num_names" Type="int8" Size="1" />
+<Data ElementName="name_array" Type="Array" ArraySizeVariable="num_names">
+	<Data ElementName="item_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="unknown12" Type="int8" Size="2" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemFood" ClientVersion="1027" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="food_type" Type="int8" Size="1" />
+<Data ElementName="level" Type="int8" Size="1" />
+<Data ElementName="duration" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemBauble" ClientVersion="1027" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="cast" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="recovery" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="duration" Type="int32" Size="1" />
+<Data ElementName="recast" Type="float" Size="1" />
+<Data ElementName="display_slot_optional" Type="int8" Size="1" />
+<Data ElementName="display_cast_time" Type="int8" Size="1" />
+<Data ElementName="display_bauble_type" Type="int8" Size="1" />
+<Data ElementName="effect_radius" Type="float" Size="1" />
+<Data ElementName="max_aoe_targets" Type="int32" Size="1" />
+<Data ElementName="display_until_cancelled" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemShield" ClientVersion="1027" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="mitigation_low" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="mitigation_high" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemHouseContainer" ClientVersion="1027" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="allowed_types" Type="int32" Size="1" />
+<Data ElementName="unknown12" Type="int32" Size="1" />
+<Data ElementName="num_slots" Type="int16" Size="1" />
+<Data ElementName="unknown13" Type="int8" Size="1" />
+<Data ElementName="broker_commission" Type="int16" Size="1" />
+<Data ElementName="fence_commission" Type="int16" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemRecipeBook" ClientVersion="1027" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="num_recipes" Type="int16" Size="1" OversizedValue="127" />
+<Data ElementName="recipe_array" Type="Array" ArraySizeVariable="num_recipes">
+	<Data ElementName="recipe_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="uses" Type="int16" Size="1" />
+<Data ElementName="scribed" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemSkill" ClientVersion="1027" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="spell_info" Substruct="WS_SpellInfo" Size="1" />
+<Data ElementName="scribed" Type="int8" Size="1" />
+<Data ElementName="scribed_better_version" Type="int8" Size="1" IfVariableSet="scribed" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemHouse" ClientVersion="1027" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="status_rent_reduction" Type="sint32" Size="1" />
+<Data ElementName="coin_rent_reduction" Type="float" Size="1" />
+<Data ElementName="house_only" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_ItemBook" ClientVersion="1027" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_ItemDescription" Size="1" />
+<Data ElementName="language" Type="int8" Size="1" />
+<Data ElementName="author" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="title" Type="EQ2_16Bit_String" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_LootItemGeneric" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_LootItemDescription" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_LootItemGeneric" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_LootItemDescription" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_LootItemGeneric" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_LootItemDescription" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_LootItemGeneric" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_LootItemDescription" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemGeneric" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemRange" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="damage_low1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="delay" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="range_low" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="range_high" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_type" Type="int8" Size="1" />
+<Data ElementName="rating" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemThrown" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="range" Type="sint32" Size="1" />
+<Data ElementName="damage_modifier" Type="sint32" Size="1" />
+<Data ElementName="hit_bonus" Type="float" Size="1" />
+<Data ElementName="damage_type" Type="int32" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemWeapon" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="wield_type" Type="int8" Size="1" />
+<Data ElementName="damage_low1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="delay" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_type" Type="int8" Size="1" />
+<Data ElementName="rating" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemArmor" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="mitigation_low" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="mitigation_high" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemShield" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="mitigation_low" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="mitigation_high" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemPattern" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="num_patterns" Type="int8" Size="1" />
+<Data ElementName="pattern_array" Type="Array" ArraySizeVariable="num_patterns">
+	<Data ElementName="item_id" Type="sint32" Size="1" />
+	<Data ElementName="item_crc" Type="sint32" Size="1" />
+	<Data ElementName="item_icon" Type="int16" Size="1" />
+	<Data ElementName="item_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemArmorSet" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="num_armor_pieces" Type="int8" Size="1" />
+<Data ElementName="piece_array" Type="Array" ArraySizeVariable="num_armor_pieces">
+	<Data ElementName="item_id" Type="sint32" Size="1" />
+	<Data ElementName="item_crc" Type="sint32" Size="1" />
+	<Data ElementName="item_icon" Type="int16" Size="1" />
+	<Data ElementName="item_name" Type="EQ2_16Bit_String" Size="1" />
+	<Data ElementName="unknown_piece" Type="int32" Size="1" />
+</Data>
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemBag" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="num_slots" Type="int8" Size="1" />
+<Data ElementName="num_empty" Type="int8" Size="1" />
+<Data ElementName="weight_reduction" Type="int16" Size="1" />
+<Data ElementName="num_names" Type="int8" Size="1" />
+<Data ElementName="name_array" Type="Array" ArraySizeVariable="num_names">
+	<Data ElementName="item_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="unknown12" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemFood" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="food_type" Type="int8" Size="1" />
+<Data ElementName="level" Type="int8" Size="1" />
+<Data ElementName="duration" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemBauble" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="cast" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="recovery" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="duration" Type="int32" Size="1" />
+<Data ElementName="recast" Type="float" Size="1" />
+<Data ElementName="display_cast_time" Type="int8" Size="1" />
+<Data ElementName="display_bauble_type" Type="int8" Size="1" />
+<Data ElementName="effect_radius" Type="float" Size="1" />
+<Data ElementName="max_aoe_targets" Type="int32" Size="1" />
+<Data ElementName="display_until_cancelled" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemSkill" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="spell_info" Substruct="WS_SpellInfo" Size="1" />
+<Data ElementName="scribed" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemHouse" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="status_rent_reduction" Type="sint32" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemHouseContainer" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="allowed_types" Type="int32" Size="1" />
+<Data ElementName="unknown12" Type="int32" Size="1" />
+<Data ElementName="num_slots" Type="int16" Size="1" />
+<Data ElementName="unknown13" Type="int8" Size="1" />
+<Data ElementName="broker_commission" Type="int16" Size="1" />
+<Data ElementName="fence_commission" Type="int16" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemRecipeBook" ClientVersion="1" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="num_recipes" Type="int16" Size="1" OversizedValue="127" />
+<Data ElementName="recipe_array" Type="Array" ArraySizeVariable="num_recipes">
+	<Data ElementName="recipe_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="uses" Type="int16" Size="1" />
+<Data ElementName="scribed" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemGeneric" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemThrown" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="range" Type="sint32" Size="1" />
+<Data ElementName="damage_modifier" Type="sint32" Size="1" />
+<Data ElementName="hit_bonus" Type="float" Size="1" />
+<Data ElementName="damage_type" Type="int32" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemRange" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="damage_low1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="delay" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="range_low" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="range_high" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_type" Type="int8" Size="1" />
+<Data ElementName="rating" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemWeapon" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="wield_type" Type="int8" Size="1" />
+<Data ElementName="damage_low1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="delay" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_type" Type="int8" Size="1" />
+<Data ElementName="rating" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemArmor" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="mitigation_low" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="mitigation_high" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemShield" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="mitigation_low" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="mitigation_high" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemPattern" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="num_patterns" Type="int8" Size="1" />
+<Data ElementName="pattern_array" Type="Array" ArraySizeVariable="num_patterns">
+	<Data ElementName="item_id" Type="sint32" Size="1" />
+	<Data ElementName="item_crc" Type="sint32" Size="1" />
+	<Data ElementName="item_icon" Type="int16" Size="1" />
+	<Data ElementName="item_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemArmorSet" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="num_armor_pieces" Type="int8" Size="1" />
+<Data ElementName="piece_array" Type="Array" ArraySizeVariable="num_armor_pieces">
+	<Data ElementName="item_id" Type="sint32" Size="1" />
+	<Data ElementName="item_crc" Type="sint32" Size="1" />
+	<Data ElementName="item_icon" Type="int16" Size="1" />
+	<Data ElementName="item_name" Type="EQ2_16Bit_String" Size="1" />
+	<Data ElementName="unknown_piece" Type="int32" Size="1" />
+</Data>
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemBag" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="num_slots" Type="int8" Size="1" />
+<Data ElementName="num_empty" Type="int8" Size="1" />
+<Data ElementName="weight_reduction" Type="int16" Size="1" />
+<Data ElementName="num_names" Type="int8" Size="1" />
+<Data ElementName="name_array" Type="Array" ArraySizeVariable="num_names">
+	<Data ElementName="item_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="unknown12" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemFood" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="food_type" Type="int8" Size="1" />
+<Data ElementName="level" Type="int8" Size="1" />
+<Data ElementName="duration" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemBauble" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="cast" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="recovery" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="duration" Type="int32" Size="1" />
+<Data ElementName="recast" Type="float" Size="1" />
+<Data ElementName="display_slot_optional" Type="int8" Size="1" />
+<Data ElementName="display_cast_time" Type="int8" Size="1" />
+<Data ElementName="display_bauble_type" Type="int8" Size="1" />
+<Data ElementName="effect_radius" Type="float" Size="1" />
+<Data ElementName="max_aoe_targets" Type="int32" Size="1" />
+<Data ElementName="display_until_cancelled" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemSkill" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="spell_info" Substruct="WS_SpellInfo" Size="1" />
+<Data ElementName="scribed" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemHouse" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="status_rent_reduction" Type="sint32" Size="1" />
+<Data ElementName="coin_rent_reduction" Type="float" Size="1" />
+<Data ElementName="house_unknown2" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemHouseContainer" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="allowed_types" Type="int32" Size="1" />
+<Data ElementName="unknown12" Type="int32" Size="1" />
+<Data ElementName="num_slots" Type="int16" Size="1" />
+<Data ElementName="unknown13" Type="int8" Size="1" />
+<Data ElementName="broker_commission" Type="int16" Size="1" />
+<Data ElementName="fence_commission" Type="int16" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemRecipeBook" ClientVersion="860" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="num_recipes" Type="int16" Size="1" OversizedValue="127" />
+<Data ElementName="recipe_array" Type="Array" ArraySizeVariable="num_recipes">
+	<Data ElementName="recipe_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="uses" Type="int16" Size="1" />
+<Data ElementName="scribed" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemGeneric" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemThrown" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="range" Type="sint32" Size="1" />
+<Data ElementName="damage_modifier" Type="sint32" Size="1" />
+<Data ElementName="hit_bonus" Type="float" Size="1" />
+<Data ElementName="damage_type" Type="int32" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemRange" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="damage_low1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="delay" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="range_low" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="range_high" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_type" Type="int8" Size="1" />
+<Data ElementName="rating" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemWeapon" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="wield_type" Type="int8" Size="1" />
+<Data ElementName="damage_low1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="delay" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_type" Type="int8" Size="1" />
+<Data ElementName="rating" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemArmor" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="mitigation_low" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="mitigation_high" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemShield" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="mitigation_low" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="mitigation_high" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemPattern" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="num_patterns" Type="int8" Size="1" />
+<Data ElementName="pattern_array" Type="Array" ArraySizeVariable="num_patterns">
+	<Data ElementName="item_id" Type="sint32" Size="1" />
+	<Data ElementName="item_crc" Type="sint32" Size="1" />
+	<Data ElementName="item_icon" Type="int16" Size="1" />
+	<Data ElementName="item_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemArmorSet" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="num_armor_pieces" Type="int8" Size="1" />
+<Data ElementName="piece_array" Type="Array" ArraySizeVariable="num_armor_pieces">
+	<Data ElementName="item_id" Type="sint32" Size="1" />
+	<Data ElementName="item_crc" Type="sint32" Size="1" />
+	<Data ElementName="item_icon" Type="int16" Size="1" />
+	<Data ElementName="item_name" Type="EQ2_16Bit_String" Size="1" />
+	<Data ElementName="unknown_piece" Type="int32" Size="1" />
+</Data>
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemBag" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="num_slots" Type="int8" Size="1" />
+<Data ElementName="num_empty" Type="int8" Size="1" />
+<Data ElementName="weight_reduction" Type="int16" Size="1" />
+<Data ElementName="num_names" Type="int8" Size="1" />
+<Data ElementName="name_array" Type="Array" ArraySizeVariable="num_names">
+	<Data ElementName="item_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="unknown12" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemFood" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="food_type" Type="int8" Size="1" />
+<Data ElementName="level" Type="int8" Size="1" />
+<Data ElementName="duration" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemBauble" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="cast" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="recovery" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="duration" Type="int32" Size="1" />
+<Data ElementName="recast" Type="float" Size="1" />
+<Data ElementName="display_slot_optional" Type="int8" Size="1" />
+<Data ElementName="display_cast_time" Type="int8" Size="1" />
+<Data ElementName="display_bauble_type" Type="int8" Size="1" />
+<Data ElementName="effect_radius" Type="float" Size="1" />
+<Data ElementName="max_aoe_targets" Type="int32" Size="1" />
+<Data ElementName="display_until_cancelled" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemSkill" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="spell_info" Substruct="WS_SpellInfo" Size="1" />
+<Data ElementName="scribed" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemHouse" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="status_rent_reduction" Type="sint32" Size="1" />
+<Data ElementName="coin_rent_reduction" Type="float" Size="1" />
+<Data ElementName="house_unknown2" Type="int8" Size="1" />
+<Data ElementName="house_only" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemHouseContainer" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="allowed_types" Type="int32" Size="1" />
+<Data ElementName="unknown12" Type="int32" Size="1" />
+<Data ElementName="num_slots" Type="int16" Size="1" />
+<Data ElementName="unknown13" Type="int8" Size="1" />
+<Data ElementName="broker_commission" Type="int16" Size="1" />
+<Data ElementName="fence_commission" Type="int16" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemRecipeBook" ClientVersion="893" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="num_recipes" Type="int16" Size="1" OversizedValue="127" />
+<Data ElementName="recipe_array" Type="Array" ArraySizeVariable="num_recipes">
+	<Data ElementName="recipe_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="uses" Type="int16" Size="1" />
+<Data ElementName="scribed" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemGeneric" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemThrown" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="range" Type="sint32" Size="1" />
+<Data ElementName="damage_modifier" Type="sint32" Size="1" />
+<Data ElementName="hit_bonus" Type="float" Size="1" />
+<Data ElementName="damage_type" Type="int32" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemRange" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="damage_low1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="delay" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="range_low" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="range_high" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_type" Type="int8" Size="1" />
+<Data ElementName="rating" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemWeapon" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="wield_type" Type="int8" Size="1" />
+<Data ElementName="damage_low1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high1" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high2" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_low3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_high3" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="delay" Type="int16" OversizedValue="127" OversizedByte="127" Size="1" />
+<Data ElementName="damage_type" Type="int8" Size="1" />
+<Data ElementName="rating" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemArmor" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="mitigation_low" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="mitigation_high" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemShield" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="mitigation_low" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="mitigation_high" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemPattern" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="num_patterns" Type="int8" Size="1" />
+<Data ElementName="pattern_array" Type="Array" ArraySizeVariable="num_patterns">
+	<Data ElementName="item_id" Type="sint32" Size="1" />
+	<Data ElementName="item_crc" Type="sint32" Size="1" />
+	<Data ElementName="item_icon" Type="int16" Size="1" />
+	<Data ElementName="item_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemArmorSet" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="num_armor_pieces" Type="int8" Size="1" />
+<Data ElementName="piece_array" Type="Array" ArraySizeVariable="num_armor_pieces">
+	<Data ElementName="unknown_piece0" Type="int8" Size="1" />
+	<Data ElementName="item_id" Type="sint32" Size="1" />
+	<Data ElementName="item_crc" Type="sint32" Size="1" />
+	<Data ElementName="item_icon" Type="int16" Size="1" />
+	<Data ElementName="item_name" Type="EQ2_16Bit_String" Size="1" />
+	<Data ElementName="unknown_piece" Type="int32" Size="1" />
+</Data>
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemBag" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="num_slots" Type="int8" Size="1" />
+<Data ElementName="num_empty" Type="int8" Size="1" />
+<Data ElementName="weight_reduction" Type="int16" Size="1" />
+<Data ElementName="num_names" Type="int8" Size="1" />
+<Data ElementName="name_array" Type="Array" ArraySizeVariable="num_names">
+	<Data ElementName="item_name" Type="EQ2_8Bit_String" Size="1" />
+</Data>
+<Data ElementName="unknown12" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemFood" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="food_type" Type="int8" Size="1" />
+<Data ElementName="level" Type="int8" Size="1" />
+<Data ElementName="duration" Type="float" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemBauble" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">
+<Data ElementName="header" Substruct="Substruct_MerchantItemDescription" Size="1" />
+<Data ElementName="cast" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="recovery" Type="int16" Size="1" OversizedValue="127" OversizedByte="127" />
+<Data ElementName="duration" Type="int32" Size="1" />
+<Data ElementName="recast" Type="float" Size="1" />
+<Data ElementName="display_slot_optional" Type="int8" Size="1" />
+<Data ElementName="display_cast_time" Type="int8" Size="1" />
+<Data ElementName="display_bauble_type" Type="int8" Size="1" />
+<Data ElementName="effect_radius" Type="float" Size="1" />
+<Data ElementName="max_aoe_targets" Type="int32" Size="1" />
+<Data ElementName="display_until_cancelled" Type="int8" Size="1" />
+<Data ElementName="footer" Substruct="Substruct_ItemFooter" Size="1" />
+</Struct>
+<Struct Name="WS_MerchantItemSkill" ClientVersion="927" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqExamineInfoCmd">